我的2020 CSP-S考场原代码及洛谷民间自测结果

BurningEnderDragon

2020-11-11 11:39:42

Personal

## 以下代码为本人考场原代码,评测结果为注释掉freopen后用[洛谷民间数据](https://www.luogu.com.cn/contest/37022)自测的评测结果 [2020 CSP-S 爆零记](https://www.luogu.com.cn/blog/BurningEnderDragon/post-2020-csp-s-bao-ling-you-ji) ## T1 儒略日(Julian) ~~Julian,指聚敛,搜刮民间财产,指480报名费~~ ### 代码: (警告:此题代码过长,请谨慎阅读!) ```cpp //公元1年1月1日=儒略日1721424 #include <iostream> #include <cstdio> using namespace std; int Q,Year=4713,Month=1,Date=1,Days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; long long Julian; bool BC=true; void Add() { if(Julian>=1721424)//公元后 { Year=1; BC=false; Julian-=1721424; if(Julian>=577737)//1582年10月15日及之后 { Year=1582; Month=10; Date=15; Julian-=577737; if(Julian>=78) { Year=1583; Month=1; Date=1; Julian-=78; } else { if(Julian>=17) { Month=11; Date=1; Julian-=17; for(int i=11;i<=12;++i) { if(Julian>=Days[i]) { ++Month; Julian-=Days[i]; } else { Date+=Julian; Julian =0; goto Final_End1; } } Date+=Julian; Julian =0; goto Final_End1; } else { Date+=Julian; Julian=0; goto Final_End1; } } Year+=400*(Julian/146097);//400年的天数为146097天 Julian%=146097; if(Julian>=6209) { Year+=17; Julian-=6209; if(Julian>=366) { ++Year; Julian-=366; Year+=4*(Julian/1461);//4年的天数为1461天 Julian%=1461; for(int i=1;i<=3;++i) { for(int j=1;j<=12;++j) { if(Julian>=Days[j]) { ++Month; Julian-=Days[j]; } else { goto End3; } } if(Month==13) { Month=1; ++Year; } } Days[2]=29; for(int j=1;j<=12;++j)//闰年 { if(Julian>=Days[j]) { ++Month; Julian-=Days[j]; } else { Days[2]=28; goto End3; } } if(Month==13) { Month=1; ++Year; } Days[2]=28; } else { for(int j=1;j<=12;++j)//闰年 { if(Julian>=Days[j]) { ++Month; Julian-=Days[j]; } else { goto End3; } } if(Month==13) { Month=1; ++Year; } } } else { Year+=4*(Julian/1461);//4年的天数为1461天 Julian%=1461; for(int i=1;i<=1;++i) { for(int j=1;j<=12;++j) { if(Julian>=Days[j]) { ++Month; Julian-=Days[j]; } else { goto End3; } } if(Month==13) { Month=1; ++Year; } } Days[2]=29; for(int j=1;j<=12;++j)//闰年 { if(Julian>=Days[j]) { ++Month; Julian-=Days[j]; } else { Days[2]=28; goto End3; } } if(Month==13) { Month=1; ++Year; } Days[2]=28; for(int i=1;i<=2;++i) { for(int j=1;j<=12;++j) { if(Julian>=Days[j]) { ++Month; Julian-=Days[j]; } else { Days[2]=28; goto End3; } } if(Month==13) { Month=1; ++Year; } } } Days[2]=28; End3:; Date+=Julian; Julian=0; goto Final_End1; } else if(Julian==577736)//1582年10月4日 { Year=1582; Month=10; Date=4; Julian=0; goto Final_End1; } else//1582年10月3日及之前 { Year+=4*(Julian/1461);//4年的天数为1461天 Julian%=1461; for(int i=1;i<=3;++i) { for(int j=1;j<=12;++j) { if(Julian>=Days[j]) { ++Month; Julian-=Days[j]; } else { goto End1; } } if(Month==13) { Month=1; ++Year; } } Days[2]=29; for(int j=1;j<=12;++j)//闰年 { if(Julian>=Days[j]) { ++Month; Julian-=Days[j]; } else { goto End1; } } if(Month==13) { Month=1; ++Year; } End1:; Days[2]=28; Date+=Julian; Julian=0; goto Final_End1; } Final_End1:; cout<<Date<<" "<<Month<<" "<<Year<<endl; return ; } else//公元前 { Year-=4*(Julian/1461); Julian%=1461; Days[2]=29; for(int j=1;j<=12;++j)//闰年 { if(Julian>=Days[j]) { ++Month; Julian-=Days[j]; } else { Days[2]=28; goto End2; } } if(Month>12) { Month-=12; --Year; } Days[2]=28; for(int i=1;i<=3;++i) { for(int j=1;j<=12;++j) { if(Julian>=Days[j]) { ++Month; Julian-=Days[j]; } else { goto End2; } } if(Month>12) { Month-=12; --Year; } } End2:; Date+=Julian; Julian=0; if(Date>Days[Month]) { Date-=Days[Month]; ++Month; } if(Month>12) { Month-=12; ++Year; } cout<<Date<<" "<<Month<<" "<<Year<<" BC"<<endl; return ; } } int main() { freopen("julian.in","r",stdin); freopen("julian.out","w",stdout); scanf("%d",&Q); for(int i=1;i<=Q;++i) { Year=4713; Month=1; Date=1; scanf("%lld",&Julian); Add(); } } ``` ### 评测结果: 万花丛中一点绿 ![万花丛中一点绿](https://cdn.luogu.com.cn/upload/image_hosting/79qfpcnj.png) ## T2 动物园(zoo) ### 代码: (这个还算正常的) ```cpp #include <iostream> #include <cstdio> using namespace std; int n,m,c,k,Animal[1000001],p[1000001],q[1000001]; bool Feed[100000001]={},Buy[100000001]={}; long long Ans=0LL; long long Quickpow(int x,int y) { long long Result=1; int Base=x; while(y!=0) { if(y%2!=0) { Result*=(long long)Base; } Base*=Base; y>>=1; } return Result; } int main() { freopen("zoo.in","r",stdin); freopen("zoo.out","w",stdout); scanf("%d%d%d%d",&n,&m,&c,&k); for(int i=1;i<=n;++i) { scanf("%d",&Animal[i]); Feed[Animal[i]]=1; } for(int i=1;i<=m;++i) { scanf("%d%d",&p[i],&q[i]); } for(int i=1;i<=n;++i) { for(int j=1;j<=m;++j) { if(Buy[q[j]]==0) { if((Animal[i]&Quickpow(2,p[j]))!=0) { Buy[q[j]]=1; } } } } for(int i=0;i<=Quickpow(2,k)-1;++i) { if(Feed[i]==0) { for(int j=1;j<=m;++j) { if(((i&Quickpow(2,p[j]))!=0)&&Buy[q[j]]==0) { goto Next; } } ++Ans; Next:; } } cout<<Ans<<endl; return 0; } ``` ### 评测结果: 彩 虹 分 析 会 ![彩 虹 分 析 会](https://cdn.luogu.com.cn/upload/image_hosting/dka8usdt.png) ## T3 函数调用(call) ### 代码: (这个也挺正常的) ```cpp #include <iostream> #include <cstdio> using namespace std; int n,m,Count=0,g[1000001],Q,f; long long a[100001]; const int MOD=998244353; struct FFunction { int T,P,V,Head,Tail; }Function[100001]; void Add(int x) { a[Function[x].P]+=Function[x].V; return ; } void SuperAdd(int x) { for(int i=1;i<=n;++i) { a[i]*=Function[x].V; a[i]%=MOD; } return ; } void Use(int x) { for(int i=Function[x].Head;i<=Function[x].Tail;++i) { if(Function[g[i]].T==1) { Add(g[i]); } else if(Function[g[i]].T==2) { SuperAdd(g[i]); } else { Use(g[i]); } } } int main() { freopen("call.in","r",stdin); freopen("call.out","w",stdout); scanf("%d",&n); for(int i=1;i<=n;++i) { scanf("%lld",&a[i]); a[i]%=MOD; } scanf("%d",&m); for(int i=1;i<=m;++i) { scanf("%d",&Function[i].T); if(Function[i].T==1) { scanf("%d%d",&Function[i].P,&Function[i].V); } else if(Function[i].T==2) { scanf("%d",&Function[i].V); Function[i].V%=MOD; } else { scanf("%d",&Function[i].V);//此处用V代替C Function[i].Head=Count+1; Function[i].Tail=Count+Function[i].V; Count+=Function[i].V; for(int j=Function[i].Head;j<=Function[i].Tail;++j) { scanf("%d",&g[j]); } } } scanf("%d",&Q); for(int i=1;i<=Q;++i) { scanf("%d",&f); if(Function[f].T==1) { Add(f); } else if(Function[f].T==2) { SuperAdd(f); } else { Use(f); } } for(int i=1;i<=n;++i) { printf("%lld ",a[i]); } return 0; } ``` ## 评测结果: (完 美 T L E) ![完 美 T L E](https://cdn.luogu.com.cn/upload/image_hosting/hzjc474b.png) ## T4 贪吃蛇(snakes) ### 代码: 我 写 不 出 来 了 ```cpp #include <iostream> #include <cstdio> using namespace std; int main() { freopen("snakes.in","r",stdin); freopen("snakes.out","w",stdout); } ``` ### 评测结果: ![OLE](https://cdn.luogu.com.cn/upload/image_hosting/bhtoa0rb.png) (至于我交了什么会OLE……) ```cpp #include <iostream> #include <cstdio> using namespace std; int main() { //freopen("snakes.in","r",stdin); //freopen("snakes.out","w",stdout); while(1)puts("Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! Fuck CCf ! "); } ``` ~~老儒雅随和了~~ # ——————————完——————————