2013 ACM/ICPC Asia Regional Changsha Online G Goldbach
2013-09-23 12:55
363 查看
比赛的时候,被题目误导了,题目最后说结果可能很大,要取模,那时就想直接求会TLE的!!!
赛后才知道,坑啊…………
代码如下:
View Code
赛后才知道,坑啊…………
代码如下:
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #define ll long long #define M 80001 #define mod 1000000007 using namespace std; int prime[M/3],cnt,p[M]; bool f[M]; void init() { cnt=0; memset(f,0,sizeof(f)); for(int i=2;i<M;i++){ if(!f[i]) prime[cnt++]=i; for(int j=0;j<cnt&&i*prime[j]<M;j++){ f[i*prime[j]]=1; if(i%prime[j]==0) break; } } memset(p,-1,sizeof(p)); } int cal(int n) { int nn=n; if(p !=-1) return p ; int m=0; for(int i=0;i<cnt&&prime[i]<=nn;i++){ if(nn%prime[i]==0){ m++; nn/=prime[i]; while(nn%prime[i]==0){ m++; if(m>3) return p =4; nn/=prime[i]; } if(m>3) return p =4; } } if(nn>1) m++; if(m>3) return p =4; return p =m; } int main() { int n; init(); while(scanf("%d",&n)!=EOF){ int ans=0; if(!f ||cal(n)<=3) ans++;//全是乘法 for(int i=0;i<cnt&&prime[i]<=n;i++){//乘法和加法 if(cal(n-prime[i])==2) ans++; } for(int i=0;i<cnt&&2*prime[i]<=n;i++)//2个数加 if(f[n-prime[i]]==0) ans++; for(int i=0;i<cnt&&3*prime[i]<=n;i++){//三个数加 for(int j=i;prime[i]+2*prime[j]<=n;j++) if(f[n-prime[i]-prime[j]]==0) ans++; } printf("%d\n",ans); } return 0; }
View Code
相关文章推荐
- 2013 ACM/ICPC Asia Regional Changsha Online G Goldbach
- ZOJ 2013 ACM/ICPC Asia Regional Changsha Online G Goldbach
- 2013 ACM/ICPC Asia Regional Changsha Online - G(DP)
- 2013 ACM/ICPC Asia Regional Changsha Online - C Color Representation Conversion
- 2013 ACM/ICPC Asia Regional Changsha Online
- zoj 数论之素数 2013 ACM/ICPC Asia Regional Changsha Online - G
- 2013 ACM/ICPC Asia Regional Changsha Online - C(Color Representation Conversion)、E (Travelby Bi)解题报告
- 2013 ACM/ICPC Asia Regional Changsha Online - C(Color Representation Conversion)、E (Travelby Bi)解题报告
- ZOJ 2013 ACM/ICPC Asia Regional Changsha Online E Travel by Bike
- 数学+模拟-2013 ACM/ICPC Asia Regional Changsha Online J 题
- 数学计数-2013 ACM/ICPC Asia Regional Changsha Online-G 题
- 2013 ACM/ICPC Asia Regional Changsha Online Contest C
- 简记2013 ACM/ICPC Asia Regional Changsha Online
- 2013 ACM/ICPC Asia Regional Changsha Online–C (模拟)
- 2013 2013 ACM/ICPC Asia Regional Changsha Online - H Hypersphere
- 2013 ACM/ICPC Asia Regional Changsha Online - C Color Representation Conversion
- 2013 ACM/ICPC Asia Regional Changsha Online J Candies
- 2013 ACM/ICPC Asia Regional Changsha Online J Candies
- 2013 ACM/ICPC Asia Regional Changsha Online - J Candies
- 2013 ACM/ICPC Asia Regional Changsha Online – C题 Color Representation Conversion (坑爹模拟题)