第四届cccc团体程序设计天梯赛
蒟蒻的第一次参加天梯赛,也能也是最后一次参加天梯赛了,下半年打完icpc就要退役了,准备考研复习了
本人的第一次天梯赛,也是本校的第一次天梯赛,由于大家都缺少经验,痛失银奖,只拿了个铜奖回来(刚开始银牌区第二的,比赛结束变成铜牌第二了,哭唧唧),下次打应该会少踩写坑。
这届次的L1-8是“罪魁祸首”,我们几个队友头铁一直去莽这道题(我也花了不少时间),直到主办人员过来说进阶标准降到600分,我才写L2的,然后L2-4用stack写又出bug了,改了半天改不出来,浪费了
几十分钟,最后受不了了,直接用数组模拟一遍过(QAQ)。然后写完L2-3发现只剩20分钟了,L2-1看了下有点像前段时间广东工业大学校赛的1003,然而我并没看懂依附性是怎么算的(事后花了点时间看,不
难),只拿了个129分(一个5分题少了1分)
因为第一次参赛,几个队友不知道榜单怎么看,不会跟榜(主要是赛前被主办方吓唬住了,不敢乱点,怕被取消成绩),L2没写一道题,最后只差不到20分进银牌区,很可惜,只要随便有个人再写一道L2
就有银了。
最后贴一下补了的L2-1的代码吧。
#include<bits/stdc++.h> const int N=1e4+7; using namespace std; int vc[10005]; bool mp[10005][10005],sushu[10005],state[10005]; set<int> st1; set<int> ::iterator it; void init() { sushu[1]=1; for(int i=2;i<1005;i++) { if(sushu[i]==0) { for(int j=2;i*j<1005;j++) { sushu[i*j]=1; } } } state[1]=1; mp[1][1]=1; for(int i=2;i<=1000;i++) { int j=i; st1.clear(); while(st1.find(j)==st1.end()) { st1.insert(j); int num=0; while(j) { int p=j%10; j/=10; p=p*p; num+=p; } j=num; if(j==1) break; } if(j==1) { state[i]=1;//i是幸福数 vc[i]=st1.size(); for(it=st1.begin();it!=st1.end();it++) { mp[i][*it]=1;//哪些数依赖i } } } } int main() { init(); int i,j,a,b,val; scanf("%d%d",&a,&b); for(i=a;i<=b;i++) { if(state[i]==0)//不是幸福数 continue; for(j=a;j<=b;j++) { if(j==i) continue; if(mp[j][i]==1) break; } if(j==b+1) { val=vc[i]; if(sushu[i]==0) val*=2; printf("%d %d\n",i,val); } } }