CSP-2025游记

· · 生活·游记

Day1上

早上起来7:14再出门,买了根巧克力,一瓶水,一瓶茶,到的时候堵车,下车一路跑过去的,可能有个600米吧,到门口才发现人也不少,就在旁边看了一下除法mod质数p正好T4用上了

看题的时候T1T2已经看笑了,T3看傻了,考了个异或和,我是个偷懒的人,已经不记得了(并没有学过【怒】),赛时也没给定义,人直接炸了,只好拿个特殊性质

T4子集枚举,特殊性质的数论,怒偷64分,然后把茶和巧克力吃完了,检查了好久,没什么事干,给T4的特殊性质造了个对拍,过了一会,就出去了,在校园里看见的死水:

最终100+100+30+64

Day1下

中午j组结束,点了一份午餐,在大学里面呆着到处逛了逛,没回去了,路上偶遇了老师,留下了照片(谁知道为什么llg在这里)

下午开赛前,神秘考场不知道为什么爆了,临时换了一间考场,延时了半小时

看到T1我直接模拟,然后不出意外样例3就挂了,回去读题,第一反应就是dp,然后我傻了,估计了一下时间,打算一个半小时打T1,一个小时拿T2部分分,剩下一小时打T3T4,死磕了一会,发现由于n/2性质,顺着推没推出来,反着看了一下,好像跟最大值和次大值差值有关,误打误撞蒙出了78行的结构体排序贪心(结构体足足有6个无用变量的石山),写完的时候也差不多一个半小时

::::info[赛时代码没这么好看]

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
struct Nova{
    int man,woman,chazhi;
    int love;
};
int T;
int n,o,fb[4],ans;
Nova t[N];
bool cmp(Nova a,Nova b){
    if(a.love==o&&b.love==o)return a.chazhi>b.chazhi;
    return a.love==o;
}
void solve(){
    cin>>n;
    ans=fb[1]=fb[2]=fb[3]=0;
    for(int i=1;i<=n;i++){
        int a1,a2,a3;
        cin>>a1>>a2>>a3;
        t[i].man=max({a1,a2,a3});
        if(t[i].man==a1){
            t[i].love=1;
            t[i].woman=max(a2,a3);
        }
        if(t[i].man==a2){
            t[i].love=2;
            t[i].woman=max(a1,a3);
        }
        if(t[i].man==a3){
            t[i].love=3;
            t[i].woman=max(a1,a2);
        }
        t[i].chazhi=t[i].man-t[i].woman;
        fb[t[i].love]++;
    }
    if(fb[1]>fb[2]&&fb[1]>fb[3])o=1;
    if(fb[2]>fb[1]&&fb[2]>fb[3])o=2;
    if(fb[3]>fb[1]&&fb[3]>fb[1])o=3;
    sort(t+1,t+1+n,cmp);
    for(int i=1;i<=n;i++){
        if(t[i].love==o){
            if(i<=n/2)ans+=t[i].man;
            else ans+=t[i].woman;
        }
        else ans+=t[i].man;
        t[i].man=t[i].woman=t[i].love=t[i].chazhi=0;
    }
    cout<<ans<<endl;
    return ;
}
int main(){
    cin>>T;
    while(T--){
        solve();
    }
    return 0;
}

::::

到T2第一眼就想到了最小生成树,然后,我忘记priority怎么打了(现在也没记得),试了20多分钟,终于没有编译错误了Q!(提醒大家不要像我一样,平时基础一定要打牢,写出来时有点激动,拍了一下桌子,旁边那人看我的眼神我现在还记得)接下来没有背熟模板,好在记得原理,跟着并查集打了出来

然后T3T4,当时已经晕了(应该买两个巧克力的,上午吃一个,下午吃一个),唯一记得的就是不能放弃,生怕和我去年惨案一样差5分,T3没看懂,呼的一坨,T4拿完了特殊性质,只想出来了所有人都要招聘的情况,才看的T3,发现特别适合大暴力【色】,糊了一托上去,特殊性质死活看不懂,写完了,考试的时候没算分,只记得出去的时候下雨,我头很晕,回到家8点半,吃完饭才感觉好点,好像最后没拿那瓶水

最终100+32+25+4

后记

作为一个初中生,我是幸运的吧,初三的最后一次比赛,考的最理想的一次,考完第二天什么也不想干,去看了场电影,无以言表