3136: [Baltic2013]brunhilda
来源:互联网 发布:苹果最新软件版本 编辑:程序博客网 时间:2024/06/06 20:06
题目链接
题目大意:给定m个素数和Q个询问。每个询问有n个人,每次操作可以任意选择其中的一个素数p(素数可以重复使用),然后去掉剩余人数 mod p个人。对于每个询问,我们想知道,至少需要多少步操作才能去掉所有人
题解:跪题解
我的收获:~~
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define Maxn 10001000#define Maxm 100010inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}// int mymax(int x,int y) {return x>y?x:y;}int f[Maxn],mx;int p[Maxm],q[Maxm];int pri[Maxn/10],pl,mn[Maxn],l[Maxn];inline void init(){ pl=0; memset(l,0,sizeof(l)); mn[1]=1; for(int i=2;i<=mx;i++) { if(!l[i]) pri[++pl]=i,mn[i]=i; for(int j=1;j<=pl;j++) { if(pri[j]*i>mx) break; mn[i*pri[j]]=pri[j]; l[i*pri[j]]=1; if(i%pri[j]==0) break; } }}int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) p[i]=read(); for(int i=1;i<=m;i++) q[i]=read(),mx=mx>q[i]?mx:q[i]; // for(int i=1;i<=n;i++) scanf("%d",&p[i]); // for(int i=1;i<=m;i++) scanf("%d",&q[i]);mx=mx>q[i]?mx:q[i]; init(); // memset(l,0,sizeof(l)); // memset(f,0,sizeof(f)); for(int i=1;i<=mx;i++) l[i]=f[i]=0; l[0]=0; for(int i=1;i<=n;i++) l[p[i]]=p[i],l[0]=l[0]>p[i]?l[0]:p[i]; int j=0; for(int i=1;i<=mx;i++) { while(!l[j]||i-j>=l[j]) { j++; if(i==j) {mx=i-1;break;} } f[i]=f[j]+1; // l[i]=mymax(l[i/mn[i]],l[mn[i]]); l[i]=l[i/mn[i]]>l[mn[i]]?l[i/mn[i]]:l[mn[i]]; } for(int i=1;i<=m;i++) { if(q[i]>mx) printf("oo\n"); else printf("%d\n",f[q[i]]); } return 0;}
阅读全文
0 0
- 3136: [Baltic2013]brunhilda
- BZOJ3136: [Baltic2013]brunhilda
- Brunhilda的生日(brunhilda)
- BZOJ3133: [Baltic2013]ballmachine
- BZOJ3134: [Baltic2013]numbers
- BZOJ3135: [Baltic2013]pipes
- bzoj3134 [Baltic2013]numbers
- bzoj3133 [Baltic2013]ballmachine
- BZOJ 3135: [Baltic2013]pipes
- [Bfs 乱搞] BZOJ 3137 [Baltic2013]tracks
- [分类讨论 思路题] BZOJ 3135 [Baltic2013] pipes
- ORA-3136
- ORA-3136
- ORA-3136 错误解决
- ORA-3136报错
- Oracle10g的ORA-3136
- ora-3136故障处理
- ORA-3136 timeout 解决之道
- python 生成内嵌式字典(dict)-案例从python提取内嵌json写入mongodb
- 浅谈算法和数据结构: 五 优先级队列与堆排序
- C++类
- css为div 增加border
- jconsole的使用
- 3136: [Baltic2013]brunhilda
- 机器学习笔记-Matrix Factorization
- RHEL文件系统与存储结构
- Java-SpringDataRedis使用入门
- 关于一般处理程序接口的调用的方法
- PLSQL----异常处理
- 1036 商务旅行(lca)
- 一个springmvc的@RequestParam异常解决
- Android Monkey 压力测试 介绍