HOJ 1867 经理的烦恼
来源:互联网 发布:淘宝如何申请中国制造 编辑:程序博客网 时间:2024/06/03 05:08
经理的烦恼
题目链接:点击打开链接
解析:标准的树状数组应用,价格判断素数,本来想打表的,后来发现直接算不超时。
代码如下:
#include <cstring>#include <cstdio>#include <algorithm>#include<math.h>using namespace std;#define MAXN 1000005int tree[MAXN];int data[MAXN];int f(int a){ if(a==0 || a==1) return 0; for(int j=2;j<=((int)(sqrt(a*1.0)));j++) { if(a%j==0) { return 0; } } return 1;}void add(int x,int num){ for(int i=x;i<=MAXN;i+=i&-i) tree[i]+=num;}int read(int x){ int sum=0; for(int i=x;i>0;i-=i&-i) sum+=tree[i]; return sum;}int main(){ int c,n,m; int flag,x,y; int index=0; // printf("%d\n",f(1)); while(scanf("%d%d%d",&c,&n,&m),c+n+m) { printf("CASE #%d:\n",++index); memset(tree,0,sizeof(tree)); memset(data,0,sizeof(data)); int t=f(m); for(int i=1;i<=c;i++) { data[i]=m; add(i,t); } for(int i=0;i<n;i++) { scanf("%d%d%d",&flag,&x,&y); if(flag==0) { int a=f(data[x]); data[x]+=y; int b=f(data[x]); if(a==1 && b==0) add(x,-1); else if(a==0 && b==1) add(x,1); } else { printf("%d\n",read(y)-read(x-1)); } } printf("\n"); } return 0;}
0 0
- hoj 1867 经理的烦恼
- HOJ 1867 经理的烦恼
- HOJ 1867 经理的烦恼
- hoj 经理的烦恼
- Hoj(哈尔滨工业大学) 1867 经理的烦恼
- hoj 1867 经理的烦恼 (树状数组)
- hoj 1687 经理的烦恼
- HOJ 1876经理的烦恼
- Hoj 1867 经理的烦恼(树状数组)
- hoj 1867_经理的烦恼_树状数组
- 【HOJ 1867】经理的烦恼(树状数组)
- hoj 1867 哈尔滨工业大学 oj 经理的烦恼 简单的树状数组
- HIT 1867 经理的烦恼
- hoj1867经理的烦恼
- hoj1867经理的烦恼
- HOJ1867 经理的烦恼
- 经理的烦恼
- HOJ1867 经理的烦恼~~~
- phpstorm + xdebug 远程断点调试,详解。
- HDU3339
- Apache kafka 工作原理介绍
- 对所做的事情的理解越深,你就会做的越好
- Java.API基础知识总结
- HOJ 1867 经理的烦恼
- 计算组合数 (sdut oj)
- RestTemplate访问Rest服务总结
- CentOS6下编译、安装Redis源码
- Windows下Pycharm使用Tensorflow、Theano和Keras的方法
- 等价二叉树
- CentOS 7 安装 MySQL
- JS脚本编写保存Cookie
- IMWeb训练营作业--VUE练习,ToDoList