求求大佬 看看怎么办 T了一个点 QAQ

P1865 A % B Problem


by van能的搞事德M @ 2019-03-31 14:42:14


你这用户名还敢发帖子?
by Tyrion_Lannister @ 2019-03-31 14:43:42


code of 线性筛素数法: ```c #include<bits/stdc++.h> using namespace std; bool f[1000001]={0},dis[1000001]={0}; inline void Jack(int m){ int i,j,k; for(i=2;i<=m;i++){ if(dis[i])continue; f[i]=1; k=i*2; while(k<=m){ dis[k]=1; k+=i; } } } int main( ){ std::ios::sync_with_stdio(false); int n,m,i,l,r; cin>>n>>m; Jack(m); int ans[m+1]; ans[1]=ans[0]=0; for(i=2;i<=m;i++)if(f[i])ans[i]=ans[i-1]+1;else ans[i]=ans[i-1]; for(i=1;i<=n;i++){ cin>>l>>r; if(l<1||r>m)cout<<"Crossing the line"<<endl; else cout<<ans[r]-ans[l-1]<<endl; } } ``` 图形表示为: ![](https://upload-images.jianshu.io/upload_images/3281836-3aebffb6f6896060.gif?imageMogr2/auto-orient/) code of 优化: ```c #include <bits/stdc++.h> using namespace std; int a,b[1000001],n,m; inline int zhi(int x){ int i; if(x==1)return 0; else for(i=2;i<=sqrt(x);i++)if(x%i==0)return 0; return 1; } inline void shu( ){ int i; b[1]=b[0]=0; for(i=2;i<=1000000;i++) if(zhi(i)==0)b[i]=b[i-1]; else b[i]=b[i-1]+1; } int main( ){ int num=0,i,j,k,x,y; shu( ); scanf("%d %d",&n,&m); for(i=1;i<=n;i++){ num=0; scanf("%d %d",&x,&y); if(x<1||y>m){printf("Crossing the line\n");continue;} else printf("%d\n",b[y]-b[x-1]); } } ``` ~~我还是太弱了,优化弄了半小时~~ ~~给个赞嘛~~ ![](https://imgsa.baidu.com/album/s%3D1100%3Bq%3D90/sign=6854af08eac4b7453094b317ffcc2566/3801213fb80e7bec36e62ac02e2eb9389b506bd6.jpg?v=tbs)
by Space_Gold_Trash @ 2019-04-21 23:01:23


@[取什么名字](/user/117658) xiexie!!!!! 太太太牛啦啦啦啦
by Big_Black_Dick @ 2019-12-04 18:13:41


|