时间 4月7日 Day -2 星期三
今天突然接到通知要做核酸,下午一放学就去中心医院做了检测,好像是下班前倒数第二个做的。
时间 4月8日 Day -1 星期四
上午交检测报告给老师,下午去买了点吃的车上吃。
时间 4月9日 Day 0 星期五
上午上了两节课,作文直接搬了CSP初赛的游记,但是忘得差不多了。
下午到车站,lxq最晚到就离谱。检票结束之后以为ta得坐延迟班了,令人惊奇的是,ta成功地上了车。
没想到竟然连xgf和xrc都带了一坨whk,我只有一张政治提纲。
车上颓废了一会儿被豪哥骂了。
经过一系列的转车,我们终于出站了。然后被耀华实验的神仙xxs像看猴子一样往学校走。在一个大牌子那里拍了照,又被经济特区的神仙学生像看猴子一样看着拍了照。这边是经济特困区的猴子!
签到的时候看见cs来了超多人,顿感我们的菜。感觉js下届一定比不过cs了。
爬了六层楼来到宿舍,宿舍里真的是啥都没有。有两个插口都没电,后来拔了空调的插口才能充电。
金中爷因为睡女生宿舍社死了,而且宿舍很拉去住酒店了。
xgf和wzm神仙在楼道里充电,晚饭回来之后有了一个在楼道里的公共排插,给手机充了电。
接下来去饭堂干饭,出宿舍的时候。把门带上结果门反锁了。
丝毫不慌先去食堂。
饭菜照道理是特供的,某实的食堂啊,唉。
我因为心情过于激动,毕竟第一次在某校食堂见到这么nb的饭菜,打了挺多的,造成了浪费。
我谢罪。
中间饭堂阿姨还问我们要不要多来点。
某实的食堂啊,唉。
饭后去了小卖部,gf哥哥被小卖部售货员凶了。
我们回到宿舍,找宿管开门。
洗澡没打开热水就离谱,洗了个冷水澡。
gf哥哥一下就打开了。
复习了一下啥都没记住,于是开始写游记。
gf哥哥的音乐好大声。
后来大家都开始颓了。
xrc:“I AK IOI!”
xgf打王者的时候话语非常文明。
没电了。
时间 4月10日 Day 1 星期六
晚上蚊子特tm多,半夜起来了几次,一次都没打着。找在wt上铺的xgf姐姐拿了瓶花露水。花露水还是别人留下来的。
一通狂喷才勉强睡着。
跟来献血似的。
早上起来wt在蚊帐里打死了七八只蚊子。蚊帐真的没鸟用。xgf也是在发现自己的床铺没有蚊帐才去了wt上铺。
我的蚊帐是破的。
去食堂干饭,饭不好吃。
此时xrc的神仙亲戚送来了空投,有美妙的花露水和main包。
回宿舍打算到八点半再去讲座。没想到宿管竟然还要查内务。
查个鬼啊,我们是来比赛的,又不是来上学,还说要清东西。
东西全都放另一个铺上去报告厅了。
报告厅的门口看起来很拉,但是里面挺大的。
这画质是真的糊。
主题:搜索与动态规划
认真听讲的xrc哥哥
前面吹了一个多小时的水,后面突然
“这题你们明天一道题的弱化版。”
顿时就来精神了。
然而讲了很久没听懂。
幸亏录下来了,回去重听了一遍才听懂。
有个鬼用啊,第二天还不是打不出来。
数位DP,笑死了,根本不会。
干完饭回宿舍重听录像,一点四十想睡一下,结果两点的时候,尽职尽责的宿管来叫醒。
“我们打扫卫生了,你们的东西赶紧整理下,床上不能放东西。”
你大爷的,你给个地方放我至于放床上?垃圾还要自己倒,况且你打扫了什么啊,把被子重新叠了一遍就叫打扫,还要清东西。叠被子我不会吗,还要你来?
去考场的时候路过了宣传栏,深感经济特困区经济特困校经济特困的我的垃圾。
进了考场,机号是考号加十。
虽然这破学校啥都不好,但是机房环境还是不错的。比广铁一中的破机房好多了。撤硕也是。
后来才知道广铁的机房是有好的,只是我脸黑。
垃圾WPS画质高糊且有水印。
前三十分钟看题。
T1数据范围提示 $n\log n$ ,需要挖性质。
规律:找 $\max a_i$ ,然后除以二上取整即为答案。
Alice和Bob就离谱啊,也是异或了一下,求和了一下,发现没鸟用,才想到观察样例找规律。
打了个自认为的正解交上去,打算有时间证明一下。
考场代码
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cmath>
using namespace std;
typedef long long ll;
int n;
ll a,ans;
int main()
{
freopen("stone.in","r",stdin); freopen("stone.out","w",stdout);
scanf("%d",&n);
while(n--)
{
scanf("%lld",&a);
ans=max(ans,a);
}
printf("%lld",(ans+1)>>1);
fclose(stdin); fclose(stdout);
return 0;
}
T2部分分提示做法直接枚举,于是很快写完自信满满。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int t,p1,p2,p3,x,y,z;
const int m=43200;
inline void big(int &a,int &b,int &c)
{
if(a > b) a^=b^=a^=b;
if(a > c) a^=c^=a^=c;
if(b > c) b^=c^=b^=c;
return ;
}
int main()
{
freopen("rescue.in","r",stdin); freopen("rescue.out","w",stdout);
scanf("%d",&t);
int ans;
while(t--)
{
ans=1e6;
scanf("%d%d%d%d%d%d",&p1,&p2,&p3,&x,&y,&z);
big(x,y,z); //x<y<z
for(int i=0,a,b,c;i<m;i++)
{
a=(p1+i)%m; b=(p2+12*i)%m; c=(p3+720*i)%m;
big(a,b,c);
if(a-x == b-y && b-y == c-z) {ans=i > m-i? m-i:i; break;}
}
if(ans <= m) printf("%d\n",ans);
else puts("ERROR");
}
fclose(stdin); fclose(stdout);
return 0;
}
T3心路历程:缩点,部分分,拿不到,突发奇想。
考虑以n为起点跑dij,然后从1号点dfs,每次转移有路牌就走,到n就返回true否则向最短路较长的点转移,如果一个点在dfs里面出现过大于两次,就return false。
感觉是对的,此时大概是五点,写了十分钟觉得没问题交了。
幸亏后来查了一下,不然 dij 还写挂了。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
const int N=1e5+10,M=2e5+10;
int n,k,m,fir[N],p[N],tot,dis[N],cnt[N];
bool vis[N];
struct edge {int to,nex;} e[M << 1];
priority_queue <pair<int,int> > h;
inline void add(int u,int v)
{
e[++tot].to=v; e[tot].nex=fir[u];
fir[u]=tot; return ;
}
inline void dij()
{
int u,v; dis[n]=0;
h.push(make_pair(0,n));
while(!h.empty())
{
u=h.top().second; h.pop();
if(vis[u]) continue;
vis[u]=true;
for(int i=fir[u];i;i=e[i].nex)
if(!vis[v=e[i].to] && dis[v] > dis[u]+1)
h.push(make_pair(-(dis[v]=dis[u]+1),v));
}
return ;
}
bool dfs(int x,int fa)
{
if(x == n) return true;
if(++cnt[x] > 2) return false;
if(p[x]) return dfs(p[x],x);
int u,maxn=-1;
for(int i=fir[x];i;i=e[i].nex)
if(e[i].to^fa && dis[e[i].to] > maxn) maxn=dis[u=e[i].to];
return dfs(u,x);
}
int main()
{
freopen("dash.in","r",stdin); freopen("dash.out","w",stdout);
int t,u,v;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&n,&m,&k);
tot=0;
for(int i=1;i<=n;i++) {fir[i]=p[i]=cnt[i]=0; vis[i]=false; dis[i]=1e8;}
while(m--) {scanf("%d%d",&u,&v); add(u,v); add(v,u);}
while(k--) {scanf("%d%d",&u,&v); p[u]=v;}
dij(); puts(dfs(1,0)? "finity":"infinity");
}
fclose(stdin); fclose(stdout);
return 0;
}
中途去了一次撤硕。
最后剩三十分钟一直在查数据范围和格式的问题。
出来后听见大佬们都说很水。
跟xgf哥哥交流之后觉得稳了,其他人好像考得不好。
晚上在开斗地主的时候,gf姐姐说:
“有个很强的人T1没取模。”
纳尼,T1要取模。
对哦,T1要取模。
fuck!!!
后来xrc和xgf骚话连连。
接下来是xgf大佬的fAKe
想现学数位DP。
但是这可能吗。
晚上xrc和xgf姐姐说要打CF Div3。
时间 4月11日 Day 2 星期日
他们后来说没打。
昨晚没蚊子!
早上干饭,吃了点xrc的main包,针不戳。
大家一交流,好家伙,T3好像有个地方打挂了,没考虑回头路。
真就没了呗,准备靠T2过活。
恶臭的讲座。
中途PJ的成绩出了,那时候基本没人听课。
顺序是倒着的,最上面的是T3。
xgf T3挂了,他Day1拿了人均的160,100+40+20。
我T3确实打挂了,但是数据水啊。
T1没取模掉30。
语文不好,T2很多巨佬们也被卡到只有40。
谁能帮蒟蒻my理解一下题意吗,谢谢各位。
得知其实考的还行,但是被豪哥骂了。
提前放学,回宿舍收拾行李。
到食堂的时候已经没什么人了,吃完回宿舍看早上的录像。
整个过程都在被神仙们骂。
xrc也加入了斗地主的行列中,顺便给wt哥哥普及了一下lbw。
后来来了个家伙。
“你们睡不睡觉啊,不睡觉来帮老师搬一下东西,搬到一楼。我们为你们服务这么辛苦,你们来帮下忙。”
翻译:一群智障住我们这么好的宿舍快点来干活。
我日你妈,服务了这么久,亏你说的出来,不算上睡觉我才来多久。我们是交了钱的,八百块跟捐了差不多。服务辛苦?垃圾还是我们自己倒的。叠被子我们也会,谁稀罕你啊。这是六楼,一楼是说去就去的吗,还要搬东西。
跟xrc坐在床上稳如老狗,动都不动一下。
wt和wzm没有社会经验啊,直接就去了。
这个逼看我们没动还问我们是不是没听见他说话。
大点声,这么小声还想开军舰?
对不起,我听不懂狗语。
后来还问了我们哪个学校的。
门口写着呢眼瞎吗?汕头市实验中学清清楚楚,找我们老师去啊。
lxq专门叮嘱我别飘。
下午在签到处等比赛开始。
Db了一个看起来很小的提高组选手。小学生,普及三百多分。又被单调队列了。
开考后pdf无法解压。
原来的解压密码藏了一个zhetiwozuoguo。
于是全部人出考场,延迟20分钟开考。
真是爱了,今天还没有笔拿,昨天还能白嫖一支笔。
笔质量一般,但是有纪念意义。
毕竟这笔见证了自己是怎么爆零的。
隔壁的同学没带笔,于是借了他一支,考试结束的时候还了回来。
什么玩意,T1是个kmp,然而我前天刚复习,今天就忘光。
不愧是我,只好打暴力。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N=1e5+10;
int k,m,a,b,c,d,e,t[N << 1],s[N],n[N << 1],ans[N << 1],cnt;
inline int read()
{
int res=0;
char c=getchar();
while(c < '0' || c > '9') c=getchar();
while(c >= '0' && c <= '9') {res=(res<<3)+(res<<1)+(c-'0'); c=getchar();}
return res;
}
void write(int r) {if(r > 9) write(r/10); putchar(r%10+'0');}
int main()
{
freopen("noise.in","r",stdin); freopen("noise.out","w",stdout);
k=read(); m=read(); a=read(); b=read(); c=read(); d=read(); e=read();
for(int i=1;i<=k;i++)
{
t[i]=read();
if(i == 1) n[i]=a;
else n[i]=((n[i-1] << b)+(n[i-1] >> c)+d)%e;
}
for(int i=1;i<=m;i++) s[i]=read();
bool f;
for(int i=1;i<=k-m+1;i++)
{
f=true;
for(int j=1;j<=m;j++)
if(((s[j]+n[i+j-1])%256) ^ t[i+j-1]) {f=false; break;}
if(f) ans[++cnt]=i;
}
if(!cnt) printf("wrong");
else
{
write(cnt); putchar('\n');
for(int i=1;i<=cnt;i++) {write(ans[i]); putchar(' ');}
}
fclose(stdin); fclose(stdout);
return 0;
}
//正解盲猜 kmp,暴力60
T2就是昨天说的数位DP。笑死了,根本不会,直接面向样例编程。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <ctime>
#include <cstdlib>
using namespace std;
int m,mod;
int main()
{
freopen("sequence.in","r",stdin); freopen("sequence.out","w",stdout);
srand(time(NULL));
scanf("%d%d",&m,&mod);
if(m == 1) printf("2");
else if(m == 2) printf("6");
else if(m == 3) printf("12");
else if(m == 4) printf("27");
else if(m == 5) printf("55");
else if(m == 20) printf("764885");
else if(m == 100) printf("518855259");
else if(m == 2000) printf("607576739");
else if(m == 100000) printf("543460293");
else if(m == 1000000) printf("763057882");
else printf("%d",rand()%mod);
fclose(stdin); fclose(stdout);
return 0;
}
T3考场推DP式子,推出来个假的,但是草过了两个样例,想改一下发现不会。于是直接交上去骗了分。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N=1e3+10;
int n,m,a[N << 1],cnt;
bool f[N][N << 1][2];
int main()
{
freopen("game.in","r",stdin); freopen("game.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
a[i+n]=a[i];
f[i][i][0]=f[i][i][1]=true;
}
for(int len=1;len<=n;len++)
{
for(int i=1,j;i<=n;i++)
{
j=i+len-1;
if(f[i][j][0])
{
if(!((a[j+1]-a[i]+m)%m <= (m>>1) && (a[j+1]-a[i]+m)%m > 0)) f[i][j+1][0]=true;
if(!((a[i]-a[i-1]+m)%m <= (m>>1) && (a[i]-a[i-1]+m)%m > 0)) f[i-1][j][0]=true;
}
if(f[i][j][1])
{
if(!((a[j]-a[j+1]+m)%m <= (m>>1) && (a[j]-a[j+1]+m)%m > 0)) f[i][j+1][1]=true;
if(!((a[i-1]-a[j]+m)%m <= (m>>1) && (a[i-1]-a[j]+m)%m > 0)) f[i-1][j][1]=true;
}
}
}
for(int i=1;i<=n;i++) if(f[i][i+n-1][0]) cnt++;
printf("%d\n",cnt);
for(int i=1;i<=n;i++) if(f[i][i+n-1][0]) printf("%d ",i);
fclose(stdin); fclose(stdout);
return 0;
}
估分30+0+10。
出考场发现T1是人均分。我太菜了。
感觉保送无望。
还有些大佬一出考场就说:“你这场200应该有吧。”
跟xgf哥哥交流了一下,他也没打出T1。
是在赶往地铁站的时候,紧赶慢赶,转车的时候临门一脚踏入车厢。
沈校终于出现了,这几天都没见到他。
可算是赶上了,到深圳北的时候还没开始检票。
安心下来,吃完嫖lxq的麦当劳开始写游记。
lxq昨天就问我们要吃啥,但是我们都没主意。
然后我突发奇想。
“佛跳墙!!!”
今天问中午我们吃啥,大家都随便。
xgf:佛跳墙!
后来就决定麦当劳了,我们真是太良心了。
以上内容为插叙,起补充说明的作用。
复兴号就是牛,光上车就上了好久,车上还有卖玩具。
xgf神和我在打游记,而其他的几位都在whk。
严厉谴责这种行为!!!
gf奶线250,我一定没了。
回去还有一坨whk。
赛后总结
- 板子要背熟,经常复习一些不常用的板子总是好的。
- 注意看数据范围和取模。
后记
其实大家带的whk基本就没动过,连wt这种whk神都被我们带坏了。
cs打得最好的是女oier,名额还是申请的。
笑死,js的正式名额可是都没批。
得知比赛周的培优班,在13班发现了屎。还好我不在。
比赛的两天晚上都有一个中山华附的同学来这颓废,但是xrc一直和妹子聊天不为所动。
有个喜欢xrc哥哥的妹子,这几天一直跟他保持交流。
引起话题:wzm这几天没来我可惨了。
只和xrc聊。xgf提出用聊天记录或者钱来换xrc的近照。妹子同意了。
xrc经常娇羞地躲在床上回信息。
时间 4月12日 Day2+1
早上起来查分。 30+10+10。面向样例编程就是nb!!!
在校车上和班里花式吐槽耀华,具体和游记里写的差不多。
来学校通知其他人可以查分了。他们好像都不太感兴趣。
而gf早就查好了。我俩实际得分和预估得分差不多
中午在食堂遇见gf哥哥,吃完一起去找lxq看排名。
没找到,12点多又去了一次。
一通excel操作,忙活了40来分钟,搞出了rank。
Day2得分更新了,我60 -> 70。
T3多了10分。
gf真是太神了,90 -> 120。直接反超我10分280来到rk14。
蒟蒻my rk18。
一等啦!!!!!!!!!!!!!!!!!!
如果我Day1 T1没挂那30就全省rk7了好像。/kk
wt和xrc的Day2 T3都比我高,于是我问了他们的神奇做法。
wt:双向链表,从1往后打,直到全部留下输出答案。
xrc:如果x打不过x+1,让x+2来打,也就是只考虑隔壁的一个人。
做法一个比一个离谱,但都比我强。
我果然是最菜的。
时间 4月14日 Day2+3
电脑课后沈校留我下来让我继续坚持和努力。
下午在机房whk被xgf骂了。
离谱啊,周一周二连续两天过敏,补了两天的作业,周三才开始真正复习期中考。
和gf查了一下大佬们的成绩。
看了一下邮箱发现有CCF的邮件,以为是NOI OL 2021 R1的成绩证明。啪的一下就打开了,很快啊!
结果是个 “已收到”。白高兴一场。
明年的GDOI不知道还会不会参加。
操场遇到xrc和他的基友们,跟他们爆料xrc的妹子。
然而他们表示我逊爆了,xrc已经有两个了。
xrc:“笑死,我喜欢男的。”
时间 4月21日 Day2+10
今天更了后记,增加了一些细节。
上星期老师在家长群表扬了我们,特此摘抄一句。
“回程的动车上还有同学在完成课内作业,实现了竞赛与文化课的无缝衔接。”
wt当然是这样。至于我,我说没缝就是没缝。
期中考炸得很彻底啊,要被班主任搞了。