解析

打表发现1e5以内的质因子是9592个
就是它没错了

容易想到枚举因子判断答案是否异常来判断是否包含该质因子
但是这个方法在最小质因子处是不奏效的

那么如何找到最小的质因子呢?
考虑把所有的质因子分成m\sqrt mm​块
然后每扫完一块,问一下 (A,1)(A,1)(A,1)
如果异常,那么最小质因子就在这块里
暴力扫一遍找出来即可

代码

#include<bits/stdc++.h>
using namespace std;
const int N=3e5+100;
const int mod=1e9+7;
double eps=1e-10;
#define ll long long
ll read(){ll x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();};while(isdigit(c)){x=x*10+c-'0';c=getchar();};return x*f;
}int n,m;int vis[N];
ll p[N],tot;
int sum,w;
int ans(1);
bool jd;
int main(){#ifndef ONLINE_JUDGE//freopen("a.in","r",stdin);//freopen("a.out","w",stdout);#endifn=read();sum=n;for(int i=2;i<=n;i++){if(vis[i]) continue;vis[i]=1;p[++tot]=i;for(int j=i+i;j<=n;j+=i) vis[j]=1;}printf("tot=%d\n",tot);w=floor(sqrt(tot));memset(vis,0,sizeof(vis));for(int i=1;i<=tot;i++){//if(ans*p[i]>n) break;int now(0);for(int j=p[i];j<=n;j+=p[i]){if(vis[j]) continue;vis[j]=1;now++;sum--;}printf("B %d\n",p[i]);//fflush(stdout);int x=read();if(x!=now){ans*=p[i];ll o=p[i]*p[i];while(o<=n){printf("A %lld\n",o);//fflush(stdout);x=read();if(!x) break;ans*=p[i];o*=p[i];}}if(!jd&&(i%w==0||i==tot)){printf("A 1\n");//fflush(stdout);x=read();if(x==sum) continue;for(int j=(i-1)/w*w+1;j<=i;j++){printf("A %d\n",p[j]);//fflush(stdout);x=read();if(x){jd=1;ans*=p[j];ll o=p[j]*p[j];while(o<=n){printf("A %lld\n",o);//fflush(stdout);x=read();if(!x) break;ans*=p[j];o*=p[j];}break;}}}}printf("C %d\n",ans);fflush(stdout);return 0;
}
/*
2 3
7 4 9 9
1 2 8
3 1
4 2 4
*/

CF1406E:Deleting Numbers(构造、根号分块)相关推荐

  1. CF1485C(整除分块+根号分块)

    思路: 推柿子: 那么,最终的答案其实就是. 我们可以先暴力枚举, 对于b >= √x的部分,min(x, b * b + b - 1)一定为x,此时求. 对于,我们套路的处理方法就是,求出块长 ...

  2. 构造IOCTL命令的学习心得-----_IO, _IOR, _IOW, _IOWR 幻数的理解

    在编写ioctl代码之前,需要选择对应不同命令的编号.为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非 ...

  3. CodeForces - 1207F Remainder Problem(分块)

    题目链接:点击查看 题目大意:给出一个长度为 500000500000500000 的数组,初始时全部为 000,需要执行 nnn 次操作,每次操作分为两种类型: 1xy1 \ x \ y1 x y: ...

  4. 关于ioctl幻数构造

          在编写ioctl 代码之前,需要选择对应不同命令的编号.为了防止对错误的设备使用正确的命 令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对 FIFO  ...

  5. 构造IOCTL命令的学习心得-----_IO, _IOR, _IOW, _IOWR 幻数的理解

    在编写ioctl代码之前,需要选择对应不同命令的编号.为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非 ...

  6. 408数据结构学习笔记——顺序查找、折半查找、分块查找

    目录 1.顺序查找 1.1.顺序查找的概念 1.2.顺序查找的代码 1.3.顺序查找的查找效率 1.4.顺序查找的优化 1.5.顺序表的时间复杂度 2.折半查找 2.1.折半查找的概念 2.2.折半查 ...

  7. E. Arithmetic Operations 根号分治

    题意:1e5长的数组,ai<=1e5,问要将其变成等差数列的最小次数: 分析: 简单分析可得 -- 显然这个答案是固定的,就是原数列本来就能成为等差数列的最大个数. 但是最直接的想法是 的,一维 ...

  8. 2016区域赛前冲刺训练

    UPD 2016.10.23 shift-and (2题) Codeforces 训练 现在已经完成了: 191 [Codeforces Round #377] (6/6) Div 2 A Buy a ...

  9. Codeforces Round #670(Div. 2) A,B,C,D,E

    文章目录 A. Subset Mex B. Maximum Product C. Link Cut Centroids D. Three Sequences E. Deleting Numbers A ...

最新文章

  1. 60+应用,哪款是你最爱?
  2. python 获取mp3时长(时间长度)
  3. 【PC工具】录屏软件,必须好用无广告!
  4. 【转】 vi常用操作
  5. 设计模式之观察者模式--中英文结合理解版
  6. springboot 禁用tomcat_Spring Boot 面试的十个问题
  7. apache+nginx 实现动静分离
  8. WIN7系统下如何把IE8升级成IE9
  9. vue直播rtmp流
  10. 神经网络为什么叫神经网络【一文看懂】
  11. CDlinux万能无线破解系统iSO中文版 U盘启动版
  12. 教你如何用CAD画向日葵
  13. Python之OpenGL笔记(30):飘扬的旗帜
  14. Unity3D-设置地形
  15. web前端能做到多少岁
  16. 【技术美术图形部分】图形渲染管线2.0-GPU管线概述几何阶段
  17. 没有独立显卡没有NVIDIA 如何安装pytorch
  18. 根据百度地图进行IP定位获取地址
  19. 中央财经的计算机类学什么时候,2019年3月全国计算机等级考试中央财经大学考试点报名通知...
  20. qq联系我们代码-qq在线客服代码

热门文章

  1. python求导函数的值_python怎么实现函数求导
  2. k8s创建pod加入容器_K8S架构原理及其工作流程
  3. 计算机bq,BQ24721部分翻译
  4. 伪装 php 版本号,linux伪装隐藏Nginx,PHP版本号提升服务器安全性
  5. 混凝土墙开洞_满城混凝土柱子切割资质齐全
  6. 7-3 作业调度算法--高响应比优先 (40 分)(思路+详解+vector容器做法)Come Baby!!!!!
  7. C++ 学习之旅(11)——类和结构中的static
  8. Java Stack 类
  9. [JavaWeb-HTML]HTML文本标签
  10. [Java基础]并发修改异常