NOIP 2023 游记
zhuimeng1233 · · 生活·游记
起
这次CSP-S小水,几乎是有分就过,然后在接下来的二十几天狠狠的学习,才勉强能打这比赛。
承
day 2
后天就要去比赛了,由于比较远,我们明天得提前去,住酒店 (可惜唯一女生不和我们一起去,自己去) ,然后这几天也不知道复习什么,疯狂切红题和模板题,而且也有点浮躁,其实也学不进去啥……
day 1
早上正常上课,中午两点多出发,辗转高铁地铁,终于在下午五点左右到了酒店,安顿下来,然后去吃饭,随便还去了大唐西市,感觉没啥吃的,然后再路边随便吃了一点,买了一点吃的当第二天早餐(酒店底下有微波炉,不得不说某团确实是便宜方便),回来后老师又强调了一些事情,安排妥当后就让我们早早睡了。
day 0!!!!!!
终于到了比赛的日子了,早上六点半左右就起了,热了一下买的早饭,草草一吃,就奔赴考场了(还有两位高三的同学一起,这是我们一起最后的OI生涯了,其实想一想还有点悲壮),在考点门口发了准考证,互相鼓励后就进去了。
我们在西工大附中考的,我那个考场貌似是物理实验室临时改的,一体机而且是
转
[ T1 ]
这道题,怎么说呢,难度不是很大,正解很容易想到 (这应该不算评论区题解吧),如果
思路好想但是优化是个大问题。
但是我的代码在你谷上能跑能 AC,但毕竟是民间数据(我自己本地最后一个大样例
考场代码
#include<bits/stdc++.h>
using namespace std;
int n,m;
struct nod {
string a;
int val;
short zdx1[3001],zdx2[3001];
} zf[3003];
map<char,int> zd;
inline bool bj(int num) {
for(int i=1; i<=n; i++) {
if(i==num) continue;
for(int j=1; j<=m; j++) {
if(zf[num].zdx2[j]>zf[i].zdx1[j])
return false;
else if(zf[num].zdx2[j]<zf[i].zdx1[j])
break;
}
}
return true;
}
bool cmp (short a,short b) {
return a>b;
}
int main () {
cin.tie(0);
char te='a';
for(int i=1; i<=26; te++,i++)
zd[te]=i;
cin>>n>>m;
for(int i=1; i<=n; i++)
cin>>zf[i].a;
if(m==1) {
int mmin=40;
for(int i=1; i<=n; i++) {
zf[i].val=zd[zf[i].a[0]];
mmin=min(mmin,zf[i].val);
}
for(int i=1; i<=n; i++) {
if(zf[i].val==mmin)
cout<<1;
else
cout<<0;
}
} else {
for(int i=1; i<=n; i++) {
for(int j=0; j<m; j++) {
zf[i].zdx1[j+1]=zd[zf[i].a[j]];
zf[i].zdx2[j+1]=zf[i].zdx1[j+1];
}
sort(zf[i].zdx1+1,zf[i].zdx1+1+m,cmp);
sort(zf[i].zdx2+1,zf[i].zdx2+1+m);
}
for(int i=1; i<=n; i++) {//毕竟光这里貌似就 n^2*m
if(bj(i))
cout<<1;
else
cout<<0;
}
}
return 0;
}
[ T2 ]
怎么说呢,全 RE,也不知道哪出了问题,题意也几乎看不懂(只能说第一题真水,感觉可能都不是蓝题)。
我的考场思路:第三四点只有赋值,所以统计赋了几个 U 就行(理论得分:
剩下的点胡写的暴力(错的),没想到并查集。
[ T3 ] & [ T4 ]
两个字 不会!,考场上随便写了几个特例,貌似也不对。
合
下午一点,终于考完了,从考场出来时是一身轻松,然后大家一起去吃饭,回家,后来又想到那几位高三的同学,确实有些伤心,到最后,也忘了大家一起再拍一张合照(悲)。
最后祝各位OIer RP++!AKNOIP!教练、指导老师、出(验)题人身体健康!