博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1168: mxh对lfx的询问(前缀和+素数表)
阅读量:5320 次
发布时间:2019-06-14

本文共 2198 字,大约阅读时间需要 7 分钟。

题目描述:

      AS WE ALL KNOW, lfx是咱们组的神仙,但是mxh想考一考lfx一个简单的问题,以此看一下lfx到底是不是神仙。但是lfx要准备补考,于是请你来帮忙回答问题:

给定一个整数N,和N个整数ai(1<=i<=n),mxh有n个询问,即第i个询问(1<=i<=n)是数组a从1~i这i个数中,奇数的个数是否是一个质数?< span="">

如果是请输出”YES”,没有引号。反之输出”NO”。

正如你想的那样,你输出有N个输出。

 

数据范围:

1<=n<=1e6

1<=ai<=1e6

 

非常easy的一个题目吧,为什么没人过,,如果a[i] 是奇数就把a[i]赋值为1,否则赋值为0。然后求a[i]数组的前缀和,

预处素数表之后,1~n扫一下前缀和,如果是质数就输出YES反而反之就好了。题目真没什么可以说的。

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ALL(x) (x).begin(), (x).end()#define rt return#define dll(x) scanf("%I64d",&x)#define xll(x) printf("%I64d\n",x)#define sz(a) int(a.size())#define all(a) a.begin(), a.end()#define rep(i,x,n) for(int i=x;i
#define pll pair
#define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)#define MS0(X) memset((X), 0, sizeof((X)))#define MSC0(X) memset((X), '\0', sizeof((X)))#define pb push_back#define mp make_pair#define fi first#define se second#define eps 1e-6#define gg(x) getInt(&x)#define db(x) cout<<"== [ "<
<<" ] =="<
不是素数vector
p;void getPrime(){ // 华丽的初始化 memset(noprime,false,sizeof(noprime)); p.clear(); int m=(int)sqrt(N+0.5); // 多姿的线性筛 for(int i=2;i<=m;i++) { if(!noprime[i]) { for(int j=i*i;j<=N;j+=i) { noprime[j] = true; } } } noprime[1]=1;// // 把素数加到vector里// for(int i=2;i<=maxn;i++)// {// if(!noprime[i])// {// p.push_back(i);// }// }// //返回vector的大小// return p.size(); }int main(){// freopen("D:\\common_text\\code_stream\\in.txt","r",stdin);// freopen("D:\\common_text\\code_stream\\out.txt","w",stdout); getPrime(); scanf("%d",&n); repd(i,1,n) { scanf("%d",&a[i]); if(a[i]&1) { a[i]=1; }else { a[i]=0; } sum[i]=sum[i-1]+a[i]; } repd(i,1,n) { if(noprime[sum[i]]) { printf("NO\n"); }else{ printf("YES\n"); } } return 0;} inline void getInt(int* p) { char ch; do { ch = getchar(); } while (ch == ' ' || ch == '\n'); if (ch == '-') { *p = -(getchar() - '0'); while ((ch = getchar()) >= '0' && ch <= '9') { *p = *p * 10 - ch + '0'; } } else { *p = ch - '0'; while ((ch = getchar()) >= '0' && ch <= '9') { *p = *p * 10 + ch - '0'; } }}

 

转载于:https://www.cnblogs.com/qieqiemin/p/10393337.html

你可能感兴趣的文章
Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
查看>>
封装CoreGraphics的API简化绘图操作
查看>>
UIWebView加载CSS样式的html
查看>>
sqlserver 判断字符串是否是数字
查看>>
[HNOI2011 任务调度]
查看>>
前端JS开发框架-DHTMLX--dhtmlXTree
查看>>
vue 组件中数组的更新
查看>>
cf860E Arkady and A Nobody-men (树剖)
查看>>
luogu5020 [NOIp2018]货币系统 (完全背包)
查看>>
BZOJ 3648: 寝室管理( 点分治 + 树状数组 )
查看>>
BZOJ 4011: [HNOI2015]落忆枫音( dp )
查看>>
第三届 CSS 开发者大会笔记
查看>>
Linux_jdk安装和配置
查看>>
001 初入iOS客户端测试
查看>>
Codeforces Round #401 (Div. 2) 离翻身就差2分钟
查看>>
便利构造器、单件模式
查看>>
jQueryDOM操作模块(二)
查看>>
[poj] 3977 Subset || 折半搜索MITM
查看>>
单例设计模式---懒汉式的多线程安全隐患
查看>>
JSP复习整理(四)Cookie
查看>>