CSP 2024游记

sikunran

2024-10-27 15:15:55

Life & Travel

前言

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分上下,散会。