首页 技术 正文
技术 2022年11月16日
0 收藏 647 点赞 2,478 浏览 862 个字

题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1867

每次更新时判断是否素数,如果从非素数变成素数就Update(x, 1),如果从素数变成非素数就Update(x, -1)。

 /*HIT 1867
经理的烦恼
*/
#include<cstdio>
#include<cstring>
const int N=; int a[N],c[N],n,m,C;
int prime(int num)
{
int i;
if(num<=)return ;
for(i=; i*i<=num; i++)
{
if(num%i==)
return ;
}
return ;
}
int lowbit(int x)
{
return x & (-x);
} void update(int i,int m)
{
while(i<=C)
{
c[i] += m;
i += lowbit(i);
}
}
int Sum(int num)
{
int s =;
while(num>)
{
s += c[num];
num -= lowbit(num);
}
return s;
}
int main()
{
//freopen("1867.txt","r",stdin);
int i,j,k,x,y,t,time=;
while(scanf("%d %d %d",&C,&n,&m)!=EOF)
{
if(C==&&n==&&m==) break;
t = prime(m);
memset(c,,sizeof(c));
for(i=; i<=C; i++)
{
if(t!=)
{
update(i,);
}
a[i]=m;
}
printf("CASE #%d:\n",++time);
for(i=; i<n; i++)
{
scanf("%d %d %d",&k,&x,&y);
if(k==)
{
int tmp = a[x];
a[x]+=y;
if(prime(a[x]))
{
if(!prime(tmp))
update(x,);
}
else
{
if(prime(tmp))
update(x,-);
} }
else
printf("%d\n",Sum(y)-Sum(x-));
}
printf("\n"); }
return ;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,400
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,812
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,894