sikunran
2024-10-27 15:15:55
前言
BJ的,第二次打CSP,初赛S跟J都是压全国线进的……本人也是非常的紧张啊,第一次参赛的时候只报了J组,然后一年CSP一场空,freopen搞错见祖宗…………于是!这次吸取了经验教训,背了一周freopen。但愿不会出什么逝。
J组 8:00
第一道题jokerpoker
刚开始想写map,想想没必要,二维列表和一维列表里选了一维列表+哈希。然后就引发了啸瘟题。这个哈希我本来想直接:
int h(string poker){
return (poker[0]*13+poker[1])%52
}
但是由于ASCLL的编码大小,导致有的不同的牌被当作同样的计算了。思索了一下,改成了:
int h(string poker){
int a;
if (poker[1]>'0'&&poker[1]<='9')a=poker[1]-'0';
else if(poker[1]=='T')a=10;
else if(poker[1]=='J')a=11;
else if(poker[1]=='Q')a=12;
else if(poker[1]=='K')a=13;
else if(poker[1]=='A')a=1;
if(poker[0]=='D')a+=0;
else if(poker[0]=='C')a+=13;
else if(poker[0]=='H')a+=26;
else if(poker[0]=='S')a+=39;
return a;
}
好,这下过了。
第二道题explore
第二题我直接写的模拟,代码太长了懒得放这了,刚开始由于我每次询问以后忘了把统计的次数归零导致耽误了时间,(我真是蒟蒻)好在最后改好了,几个样例都过了。
第三题sticks
先在草稿纸上画数字,没思路,看特殊性质。哎!然后发现特殊性质就是可以全用8,然后在特殊性质上改改可以得出大数的规律,然后又没思路了,于是手推了几个,还是没思路,于是写了if else然后手推了1~30的答案…………
第四题
过
中场休息 12:00
在北工大考的试,中午蹭了个饭,真的很香啊。
逛了逛校园,感觉建筑很有历史年代感,到处都贴着比我还老的2008奥运会宣传报……体育场要刷卡,没进去。图书馆要刷卡,没进去。科技节,关门了。教学楼………肯定不能进啊!(某幸咖啡可以进,但人真的很多!校园里散步的20%大学生手里都有一杯)在校园里逛了一中午,两点回去考S组了。
S组 2:30
进了考场,我的电脑模拟机竟然没有全屏…………听右边的哥们一直在打字,扭头一看(还没开考)看他用命令行操控Linux,给我整蒙了。
开考!
第一题duel
本来想模拟,很难,但是试了试,手推了几个,看了看过程,发现只要sort一下然后找到出现次数最多的数的次数就行了。可以这样理解:
6个数:a,b,b,b,c,c,假设a<b<c,a被b吃,同理,比b小的都能一级一级吃最后被b吃。b被c吃,可以看成c消失变成b,同理,比b大的都能吃b,然后一级级被吃,最后剩下b,c,c,我们的猜测没错。
第二题detect
真的不会,特殊性质A和B做出来了,应该能拿个40。
第三题color
应该有规律的,但是我没找到,赛场上用的递归硬枚举的,看点的大小大概能拿20。
第四题
不会,依然是只做了特殊性质A。
预估J250分上下,S180分上下,散会。