CSP2021游记

2024.2 重新编辑了下, 顺便附上赛时代码(当时的我真的菜啊~)

初赛

day -20

暑假集训回来了,疯狂补whk作业

day -16

开学,上课复习OI

day -14 ~ day -10

高强度学初赛,做了3次模拟,分数分别为 38 59 77

day -6

模拟可以稳到70+,很大的进步

day -2

好家伙,校队老师说拿奖给我整个颁奖典礼(目前来看好像咕了)

day -1

颓了一天,喝点咖啡就睡了(不是哥们为什么睡觉要喝咖啡啊!

day 0

去考场见到了许久未见的xyh巨佬,xyh和他的lq同学吊打我,并议论karry5307

开考了 S组难得一批,acos(-0.5)是啥我也不晓得,立体几何我也没学过,还考了四毛子,根本不会,手算base64,草,连猜带蒙结束了。

中午去吃了个牛排。。。接着对了下答案,S50左右,危

下午是J组 难度还行,居然考了个约瑟夫?不要太简单

出来之后对答案居然也只有50左右? 最有信心的约瑟夫竟然全错,明年再见了…

day 8

出分了,J66,S55.5,J竟然卡线进,离谱.

复赛

day -15

大家好,窝又回来了!还有十几天就CSP复赛,但我连搜索都学不怎么会

day -14 ~ day -8

哈哈 我真菜,快要放弃了/kk

day -2

水了几天红题,信心大增

day -1

早上直接罢课做了几题历年题,打印了些准考证啥的。。。

下午,经过15min的共享单车和30min的地铁后,终于坐上了G****(属实是忘了)还是复兴号,因为2=座没了直接买了1=座,哈哈人生头一次1=座,希望这次也能拿个1=回家!

1 hour later

到了!杭州东!大城市就是不一样啊哈哈哈,不过这地铁网络购票为啥这么麻烦啊(比宁波麻烦多了)

再地铁上拿着小小的iPhone 5s问xyh巨佬住哪儿,惊了,居然住我楼下

地铁上还碰到了一个很像老番茄的人

2130的地铁,人群还是熙熙攘攘,对比宁波地铁,这个时间点或许早已空无一人了吧 听着亲切却又陌生的杭州话,到站了,浙大紫金港

到了酒店已经2230,洗洗随便打了几个板子就直接睡了

day 0

起床,0630

在酒店吃了早饭,感觉不是很牛

洛谷打卡后随便走了走,吃了个早饭就上考场了,不得不说学军真大…

面到了几个lq巨佬,没有见到xyh

学军就是不一样啊!电脑配这么好的。。。我们学校的开个浏览器都要半天,别说Dev了

打了快读和__int128板子,开考了,解压密码一遍过,好兆头。

拿到T1以为是dp,想了一下无果,开T2,看题面感觉是什么很复杂的数据结构,写了个的暴力跑路

回去看T1,1e9的数据,这写过不了吧,看了会发现是道数论,想了很久没推出公式,写了暴力,希望能得80

还有1:05,去看T3,原来是道大模拟,写了一半感觉有些东西不知道怎么写,但是好像拿点部分分还是没啥问题的,没什么时间了,检查了下文件名。

看了眼T4,发现是神笔题,感觉暴力甚至可以70,不过完全没有时间了我是傻逼啊啊啊。

期望得分 80+30+50+0=160

二等应该有了

出考场面到了xyh,据说他T2写的,但好像也挂了挺多地方的,祝好

中午去吃了必胜客,还行,随便逛了下Apple的店,动车回家了

day 1

补作业,太多了根本写不完,大不了明天和老师爆了。

day x?

用luogu跑了下我代码居然 100+52+35+0=187
信心倍增,但是还是无望1=

day 12

出分了,90+52+35+0=177,喜提了个二等+4级勾回家
T1挂了10分,复杂度是错的,也在情理之中了,这luogu的数据也太水了

完。

附赛时代码

T1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<iostream>
#include<cmath>
using namespace std;
long long n,l,r,maxx=-1000001,ans;
long long find(long long x)
{
return x%n;
}
int main()
{
freopen("candy.in","r",stdin);
freopen("candy.out","w",stdout);
cin>>n>>l>>r;
if(n==1)
{
cout<<r<<endl;
return 0;
}
for(long long i=l;i<=r;i++)
{
maxx=max(maxx,find(i));
}
cout<<maxx<<endl;
return 0;
}

T2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int n,q,a[8005],b[8005],t1,t2,t3,num,l,r;
int main()
{
freopen("sort.in","r",stdin);
freopen("sort.out","w",stdout);
cin>>n>>q;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
}
for(int i=1;i<=q;i++)
{
scanf("%d",&num);
if(num==1)
{
scanf("%d",&t1);
scanf("%d",&t2);
a[t1]=t2;
b[t1]=t2;
}
else if(num==2)
{
scanf("%d",&t3);
for(int j=1;j<=n;j++)
{
for(int k=j;k>=2;k--)
{
if(b[k]<b[k-1])
{
if(k==t3)
{
--t3;
//cout<<t3<<endl;
}
else if((k-1)==t3)
{
++t3;
//cout<<t3<<endl;
}
swap(b[k],b[k-1]);
}
}
}
cout<<t3<<endl;
for(int x=1;x<=n;x++)
{
b[x]=a[x];
}
}
}
return 0;
}

T3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<iostream>
#include<cstring>
using namespace std;
long long n,a[1005],b[1005],c[1005],d[1005],e[1005],i;
string s1[1005];
bool flag=false,flag1[1005];
bool check(int a,int b,int c,int d,int e,int f,int g,int h,int i,int j)
{
if(a==b&&c==d&&e==f&&g==h&&i==j)
{
return true;
}
else
{
return false;
}
}
int main()
{
freopen("network.in","r",stdin);
freopen("network.out","w",stdout);
cin>>n;
for(i=1;i<=n;i++)
{
cin>>s1[i];
scanf("%d.%d.%d.%d:%d",&a[i],&b[i],&c[i],&d[i],&e[i]);
}
for(i=1;i<=n;i++)
{
if(a[i]>255||b[i]>255||c[i]>255||d[i]>255||e[i]>65535||e[i]<=0||a[i]<0||b[i]<0||c[i]<0||d[i]<0)
{
cout<<"ERR"<<endl;
continue;
}
if(s1[i]=="Server")
{
if(i==1)
{
cout<<"OK"<<endl;
continue;
}
for(int j=1;j<=i-1;j++)
{
if(s1[j]=="Server"&&check(a[i],a[j],b[i],b[j],c[i],c[j],d[i],d[j],e[i],e[j])==false)
{
cout<<"OK"<<endl;
break;
}
else
{
cout<<"FAIL"<<endl;
break;
}
}
}
else
{
for(int j=1;j<=i-1;j++)
{
if(s1[j]=="Server"&&check(a[i],a[j],b[i],b[j],c[i],c[j],d[i],d[j],e[i],e[j])==true)
{
cout<<j<<endl;
flag=true;
break;
}
}
if(flag==false)
{
cout<<"FAIL"<<endl;
}
flag=false;
}
}
return 0;
}

T4

1
2
3
4
5
6
7
8
9
#include<iostream>
using namespace std;
int main()
{
freopen("fruit.in","r",stdin);
freopen("fruit.out","w",stdout);
cout<<"完蛋了没时间了"<<endl;
return 0;
}