CSP2022游寄

声明:作者是个菜鸡

# 初赛前的准备:

初赛前我把近5年J/S真题全刷了一遍

分数飘忽不定,真有点慌

还好最后没寄。

# 初赛

(大家都说今年J简单,S难,但我觉得恰恰相反qwq)

考J初赛的时候脑子短路了,阅读程序三少看了一个括号,然后就没读出来是一个牛顿迭代,白丢了六分。

单选,阅读1,2又寄了好多个。

最后86分卡线过。(SZ太卷了,分数线81.5)

S组做的挺舒服,除了负数取模和sq单选剩下的都好做。

最后89.5,单选错了四个,SZ第八,只能说是运气不好。

# CSP-J2

md

考完心态炸裂。

花半小时秒了T1T2T4,然后T3想+打代码花了1h

然后我就开始睡觉,吃东西,玩数字华容道(电脑里自带的小工具里面的)

最后10min我乱构造一组数据,跑出来,发现T3寄了,但是各OJ的数据都没让我寄掉,希望ccf数据水点。

出考场以后,我发现我T4也寄了

附代码:

#include
using namespace std;
#define int long long
int dp[505][105],dis[505][505];
int n,k;
paira[505];
bool cmp(pairaa,pairbb){
    if(aa.first == bb.first)return aa.second> n>> k;
    for(int i =1;i<=n;i++)cin>> a[i].first >> a[i].second;
    sort(a+1,a+1+n,cmp);
    for(int i =1;i<=n;i++){
        for(int j =1;j<=n;j++)dis[i][j] = abs(a[i].first-a[j].first)+abs(a[i].second-a[j].second)-1;
    }
    dp[1][0] = 1;
    for(int i=2;i<=n;i++){
        for(int j = 1;jk)break;
                    dp[i][l+dis[i][j]] = max(dp[i][l+dis[i][j]],dp[j][l]+1);
                }
            }
        }
    }int ans = k;
    for(int i =1;i<=n;i++){
        for(int j =0;j<=k;j++)ans =max(ans,dp[i][j]+k);
    }cout<< ans << endl;
    return 0;
}


 

我整体写的都是对的

if(l+dis[i][j]>k)break;


这句话让我 100 -> ?

(还不是因为考场上不检查,然后降智了)
(警钟敲烂)

# CSP-S2

一团糟。

前2h写了T1和T2

后2h脑力就不够用了,T3直接忘记基环树性质,打了个dfs跑环,还调了好久。

T4我以为爬树再dp可以混48分,后来想了想只能混28分qwq

结果自测下来,T1挂了一个小地方,我算上了极小的一部分只到达了三个点的情况(这也就是我luogu 90,infoj 100,有道图灵 95的原因)

T2好像是全打错了,在考虑的策略上有点问题,但是能过绝大部分样例。

(luogu 100,infoj 40,有道图灵 70)

目前期望的得分:

[90,100]+[40,90]+40+[24,36] =  [198,266] 

不出意外的话1=是拿到手了,但是冬令营什么就别想了。

upd:出分了,最后CSP-J 375,CSP-S 259,感觉没挂多少分,在校内排名还挺高,都要感谢ccf,但是初一有一个小朋友AK了CSP-J,被单调队列力(大悲)。

希望noip能正常发挥吧 qwq

我也想当省选选手!!!!!!!

你可能感兴趣的:(算法,抽象代数,学习方法,其他)