CF1406E 【Deleting Numbers】
蒟蒻语
蒟蒻这次 \(CF\) 又双叒叕掉分了,\(C\) 都没有调出来。
还好再最后 \(10\) 秒钟调了下 \(E\) 块长 (块长 \(100\) => \(98\)),才没有掉得那么惨。
蒟蒻解
\(100000\) 里总共有 \(9592\) 个质数。
(下文 \(p_i\) 表示第 \(i\) 个质数)
首先 \(x\) 大于 \(\sqrt n\) 的质因数最多一个。
对于大于 \(\sqrt n\) 的质数数可以进行分块, 块长为 \(B\)。
每次把一个块里面的质数删完(B p[i]), 然后删完之后看看删掉的数的总数是否等于 A 1 答案的变化量。如果不相等,那么说明 \(x\) 一定有一个质因数处于这个块内,暴力 A p[i] 判断是否为 \(1\) 就行了。如果 A p[i] 为 \(1\), 那么就说明 \(x\) 大与 \(\sqrt n\) 的质因数就是 \(p_i\)。
那么小于 \(\sqrt n\) 的质数就很好弄了, 直接先删这个质数的倍数,然后一个个暴力判 \(x\) 最多能整除该质数的几次方就好了。
蒟蒻码
不懂的看丑陋无比的代码吧
#include<bits/stdc++.h>
#define N 100010
#define B 98
using namespace std;
int Ans = 1;
bool Prime[N];
int tot, p[N];
void xxs(int x) {
for(int i = 2; i <= x; i++) {
if(!Prime[i]) p[++tot] = i;
for(int j = 1; p[j] * i <= x && j <= tot; j++) {
Prime[p[j] * i] = 1;
if(i % p[j] == 0) break;
}
}
}
int n, tt, maxn;
void get(int x) {
int now = 1;
printf("B %d\n", x);
fflush(stdout);
scanf("%d", &tt);
while(1) {
now *= x;
if(now > n) break;
printf("A %d\n", now);
fflush(stdout);
scanf("%d", &tt);
if(tt == 0) break;
Ans *= x;
}
}
int main() {
scanf("%d", &n);
xxs(n);
for(int i = 1; i <= tot; i++) if(p[i] <= sqrt(n)) maxn = i;
int ssss = n, L = maxn, R = tot;
for(int i = 1; i <= B; i++) {
int L = (i - 1) * B + 1, R = min(i * B, tot);
for(int j = L; j <= R; j++) {
if(j <= maxn) continue;
printf("B %d\n", p[j]);
fflush(stdout);
scanf("%d", &tt);
ssss -= tt;
}
printf("A 1\n");
fflush(stdout);
scanf("%d", &tt);
if(ssss != tt) {
for(int j = L; j <= R; j++) {
if(j <= maxn) continue;
printf("A %d\n", p[j]);
fflush(stdout);
scanf("%d", &tt);
if(tt) {
Ans = p[j];
break;
}
}
break;
}
if(R == tot) break;
}
for(int i = 1; i <= maxn; i++) get(p[i]);
printf("C %d\n", Ans);
fflush(stdout);
return 0;
}
CF1406E 【Deleting Numbers】的更多相关文章
- 题解【洛谷】CF134A
题解 CF134A [Average Numbers] 这题就是简单的模拟. 只不过要优化一下常数什么的 思路: 为了不浪费时间总是取平均数,直接用一个 S 储存总和,每次都减去 a_i 再除以 n ...
- 【66.47%】【codeforces 556B】Case of Fake Numbers
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【HDU 4722】 Good Numbers
[题目链接] 点击打开链接 [算法] f[i][j]表示第i位,数位和对10取模余j的数的个数 状态转移,计算答案都比较简单,笔者不再赘述 [代码] #include<bits/stdc++.h ...
- 【POJ 1995】 Raising Modulo Numbers
[题目链接] http://poj.org/problem?id=1995 [算法] 快速幂 [代码] #include <algorithm> #include <bitset&g ...
- 【codeforces 746E】Numbers Exchange
[题目链接]:http://codeforces.com/problemset/problem/746/E [题意] 你有n张卡片,上面写着不同的数字; 然后另外一个人有m张上面写着不同的数字的卡片: ...
- 【codeforces 367C】Sereja and the Arrangement of Numbers
[题目链接]:http://codeforces.com/problemset/problem/367/C [题意] 我们称一个数列a[N]美丽; 当且仅当,数列中出现的每一对数字都有相邻的. 给你n ...
- 【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化
继上一篇[Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 对豆瓣图书Top250进行爬取以后,鉴于还有一些问题没有解决,所以进行了进一步的交流讨论,这期间得到了一只尼玛 ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- 【uTenux实验】互斥体
互斥体,维基百科中交互斥锁.其定义是这样的:互斥锁(英语:英语:Mutual exclusion,缩写 Mutex)是一种用于多线程编程中,防止两条线程同时对同一公共资源(比如全局变量)进行读写的机制 ...
随机推荐
- gdb调试core dump使用
什么是coredump? Coredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照.操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存.寄存器状态.运行堆 ...
- brctl 增加桥接网卡
前言 之前有一篇介绍配置桥接网卡的,这个桥接网卡一般是手动做虚拟化的时候会用到,通过修改网卡的配置文件的方式会改变环境的原有的配置,而很多情况,我只是简单的用一下,并且尽量不要把网络搞断了,万一有问题 ...
- 自动化测试_移动端测试(二)—— Appium原理
一.什么是Appium Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持IOS.Android及FirefoxOS平台.Appium使用WebDriver ...
- 企业级工作流解决方案(九)--微服务Tcp消息传输模型之客户端处理
客户端启动 客户端启动主要做三件事情,1. 从配置文件读取服务调用配置,存储到全局对象中.2. 指定客户端编解码器工厂.3. 预连接,即预先建立与服务端的通信Chanel. [DependsOn(ty ...
- 这次齐了!Java面向对象、类的定义、对象的使用,全部帮你搞定
概述 Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计.开发计算机程序. 这里的对象泛指现实中一切事物,每种事物都具备自 ...
- 新鲜出炉!面试90%会被问到的Java多线程面试题,史上最全系列!
前言 最近很多粉丝朋友私聊我说能不能给整理出一份多线程面试题出来,说自己在最近的面试中老是被问到这一块的问题被问的很烦躁,前一段时间比较忙没时间回私信,前两天看到私信我也是赶紧花了两天给大家整理出这一 ...
- How to realize one's ambition
Work Overtime Can it work? To some extent, it parhaps works very well. What if you do little job and ...
- Guitar Pro7应该怎么添加音色
众所周知,音色是乐器的灵魂所在.音色的好坏,直接影响到了整首曲子的质量.Guitar Pro7中,用户不仅可以切换乐器模拟器,还能分别对其进行音色调整.对于新手而言,Guitar Pro7是一款非常合 ...
- ABBYY FineReader文档对比实例讲解
ABBYY FineReader企业版与标准版有一个重大的区别,就是企业版有对比文档的功能,今天通过下面的文档对比实例,来向大家展示一下OCR文字识别工具ABBYY FineReader的使用技巧. ...
- 在FL Studio中制作和优化人声和弦(Vocal Chords)
人声和弦在Future Bass.Melodic Dubstep等类型的电子音乐中被常用.与一般的和弦相同,其主要起到为主旋律做铺垫的效果,但是人声和弦加入了人声的因素,可以使得和弦更有趣,更有电子音 ...