RuntimeErr
2021-09-13 18:38:52
自从开学起,
大约八月初的时候,收到了可以报名的信息,很快地提交了信息,并于月底准时给西西弗捐完钱,之后的日子就如我上面所说的一样。
早上是
其他人来的很早,初三的还有几个初二的神仙。没一会就进考场了,走完一遍程序便开始发卷。
很好,前面的单选题做的还算得心应手,转到最恶心的读程序题。
计算几何,开幕雷击。我整个人傻掉了,凭感觉选了几个答案下去。第二题读了一下像是最大子序和,这道题做的还行,复杂度靠主定理轻松求得。第三道题,???字符串,我又傻掉了,再次乱选。考完才知道这是个叫
开始自闭,殊不知可怕的在后面。
魔法数字写起来还挺顺利的,第二题——四毛子?!神 tm 提高考这些???
这玩意一周前我还看过,然而忘的一干二净。长叹一口气,又只好瞎蒙几个下去。
果然我还是不配待在
相比之下,下午就显得轻松许多。单选题
第一题一个很显然的
果然,我的预感是正确的,第二题,又 tm 出了
完善程序就很简单,可以说是送分。
出来感觉还行,想着
对完答案,我几乎崩溃,只有
晚上感觉很彷徨,原本的游记计划鸽掉了,
目前来说,我的
洛谷的膜你赛错过了,准备找个时间补一补题。
噫!好了!我中了!
害,一直都忘了更新游记。
好极了,可以躲避 whk,还不用早起。
离高铁站最近,来的最晚/kel。
等高铁的时候,wt 哥哥居然在 whk !!1
上车后,打了一下模板,主要还是颓废(
然后就到了。
然后坐地铁。
然后出了地铁后,我们直接错过了酒店,跑到马路另一边,又跑了回来。
广州真是个充满多样性的城市。
好冷。
早上超早就起来了,跑去麦当劳结果七点才开门,草草在便利店解决完毕。
今年 pj 还行,没有离谱 dp,能打的都打了。
T1 签到题考场上想了大概 15min,脑子突然卡住了,在 30min 的时候搞完了。中午午睡的时候突然把我的做法 hack 了(居然三个样例都过了 /fad),希望 CCF 脚造数据良心亿点 /fad。
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,l,r;
int main(){
freopen("candy.in","r",stdin);freopen("candy.out","w",stdout);
scanf("%d%d%d",&n,&l,&r);
if(r-l>=n)printf("%d",n-1);
else printf("%d",r%n);
fclose(stdin);fclose(stdout); return 0;
}
。 T2 sort 一眼看到操作 1 数量不超过 5000,中间调了一些奇奇怪怪的错误,花了 1h 切掉。
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=8e3+10;
int n,q,b[N];
struct node{
int val,id;
}a[N];
inline bool cmp(node x,node y){return x.val==y.val?x.id<y.id:x.val<y.val;}
int found(int v,int p){
int l=1,r=n,mid;
while(l<=r){
mid=(l+r)>>1;
if(a[mid].val==v){
if(a[mid].id==p)return mid;
if(a[mid].id>p)r=mid-1;
else l=mid+1;
}else if(a[mid].val>v)r=mid-1;
else l=mid+1;
}
return mid;
}
int main(){
freopen("sort.in","r",stdin);freopen("sort.out","w",stdout);
scanf("%d%d",&n,&q);
for(int i=1;i<=n;++i)scanf("%d",&a[i].val),a[i].id=i,b[i]=a[i].val;
sort(a+1,a+n+1,cmp);
int op,x,y;
while(q--){
scanf("%d%d",&op,&x);
if(op==1){
scanf("%d",&y);
if(b[x]==y)continue;
int pos=found(b[x],x);
if(b[x]<y){
a[pos].val=b[x]=y;
for(int i=pos;((a[i+1].val<a[i].val)||(a[i+1].val==a[i].val&&a[i].id>a[i+1].id))&&i<n;++i)swap(a[i],a[i+1]);
}else {
a[pos].val=b[x]=y;
for(int i=pos;((a[i-1].val>a[i].val)||(a[i-1].val==a[i].val&&a[i].id<a[i-1].id))&&i>=2;--i)swap(a[i],a[i-1]);
}
}else printf("%d\n",found(b[x],x));
}
fclose(stdin);fclose(stdout);
return 0;
}
T3 模拟还不会做,跳过。
T4 马上就想到链表,可惜调了半天没调出来,遂改成队列,总共花了接近 1.5h。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
const int N=2e5+10;
int n,a[N],cnt;
queue<int>q[N];
int main(){
freopen("fruit.in","r",stdin);freopen("fruit.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i)scanf("%d",&a[i]);
a[0]=2;cnt=0;
for(int i=1;i<=n;++i){
if(a[i]!=a[i-1])q[++cnt].push(i);
else q[cnt].push(i);
}
bool fl=true;
while(fl){
int lst=0;fl=false;
for(int i=1;i<=cnt;++i){
if(q[i].empty())continue;
int x=q[i].front();
if(a[x]==a[lst])continue;
printf("%d ",x);q[i].pop();
fl=true;
lst=x;
}
if(fl)printf("\n");
} fclose(stdin);fclose(stdout);
return 0;
}
T3 只剩差不多半小时了,只好抓几个性质骗个分。
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e3+10;
int n,op[N],a[N],b[N],c[N],d[N],e[N];
bool vis[N];
char s[10];
int main(){
freopen("network.in","r",stdin);freopen("network.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%s",s);vis[i]=1;getchar();
op[i]=(s[0]=='S')?1:0;
scanf("%d.%d.%d.%d:%d",&a[i],&b[i],&c[i],&d[i],&e[i]);
if(a[i]>255||b[i]>255||c[i]>255||d[i]>255||e[i]>65535){
printf("ERR\n");vis[i]=0;
continue;
}
if(op[i]==1){
bool fl=true;
for(int j=1;j<i;++j){
if(op[j]==0||!vis[j])continue;
if(a[j]==a[i]&&b[j]==b[i]&&c[j]==c[i]&&d[j]==d[i]&&e[j]==e[i]){
fl=false;vis[i]=0;
break;
}
}
if(!fl)printf("FAIL\n");
else printf("OK\n");
}else {
int pos=0;
for(int j=1;j<i;++j){
if(op[j]==0||!vis[j])continue;
if(a[j]==a[i]&&b[j]==b[i]&&c[j]==c[i]&&d[j]==d[i]&&e[j]==e[i]){
pos=j;
break;
}
}
if(!pos)printf("FAIL\n");
else printf("%d\n",pos);
}
}
fclose(stdin);fclose(stdout);
return 0;
}
匆匆忙忙就搞完了,临近结束时突然冷得一批,全身都在抖。
luogu 估分:100+100+65+70=335
计蒜氪 估分:90+100+65+100=355
中午慌忙干完了饭,睡了 20min 又起来了,简直睡了个寂寞,tg 考场上困的要死,只会 t1 和 t3 暴力,其他交了个随机数就在那罚坐了 4h。
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int N=1e5+10;
int n,m1,m2;
struct node {
int id,x,y;
} a[N];
priority_queue< int,vector<int>,greater<int> >q1,q2;
bool cmp(node a,node b) {
return a.x<b.x;
}
int main() {
scanf("%d%d%d",&n,&m1,&m2);
if(n>=m1+m2)printf("%d\n",m1+m2);
else {
for(int i=1; i<=m1+m2; ++i)scanf("%d%d",&a[i].x,&a[i].y),a[i].id=(i<=m1)?1:2;
sort(a+1,a+m1+m2+1,cmp);
int ans=0;
for(int k=1; k<=n; ++k) {
int cur=0,cnt1=0,cnt2=0;
while(!q1.empty())q1.pop();
while(!q2.empty())q2.pop();
for(int i=1; i<=m1+m2; ++i) {
if(a[i].id==1) {
if(!q1.empty()&&a[i].x>=q1.top())q1.pop(),q1.push(a[i].y),++cur;
else if(cnt1<k)q1.push(a[i].y),++cur,++cnt1;
} else {
if(!q2.empty()&&a[i].x>=q2.top())q2.pop(),q2.push(a[i].y),++cur;
else if(cnt2<n-k)q2.push(a[i].y),++cur,++cnt2;
}
}
ans=max(ans,cur);
if(ans==m1+m2)break;
}
printf("%d\n",ans);
}
return 0;
}
//T3
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int N=5e5+10;
int t,n;
bool fl;
deque<int>q;
struct node {
int id,val;
} a[N];
void dfs(int x) {
if(x>n*2) {
fl=true;
return;
}
if(x<=n) {
int now=q.front();
a[x].val=now;
a[x].id=1;
q.pop_front();
dfs(x+1);
if(fl)return;
q.push_front(now);
now=q.back();
a[x].val=now;
a[x].id=2;
q.pop_back();
dfs(x+1);
if(fl)return;
a[x].val=a[x].id=0;
q.push_back(now);
} else {
int now;
if(q.front()==a[n*2-x+1].val) {
now=q.front();
a[x].val=now;
a[x].id=1;
q.pop_front();
dfs(x+1);
if(fl)return;
q.push_front(now);
a[x].val=a[x].id=0;
}
if(q.back()==a[n*2-x+1].val) {
now=q.back();
a[x].val=now;
a[x].id=2;
q.pop_back();
dfs(x+1);
if(fl)return;
q.push_back(now);
a[x].val=a[x].id=0;
}
}
}
int main() {
scanf("%d",&t);
while(t--) {
scanf("%d",&n);
if(n<=10) {
while(!q.empty())q.pop_back();
for(int i=1,x; i<=n*2; ++i)scanf("%d",&x),q.push_back(x);
fl=false;
dfs(1);
if(fl) {
for(int i=1; i<=n*2; ++i)printf("%c",a[i].id==1?'L':'R');
printf("\n");
} else printf("-1\n");
} else printf("-1\n");
}
return 0;
}
luogu 估分:40+0+28+0=68
希望真正成绩出来了不要锅吧。
听说 lsz 和 hkf 都炸掉,希望再接再厉,明年双报。
说来说去,也到了尾声,两年多的时间就这样过去了,希望我最终能交出一份满意的答卷吧。至此,正式进入文化课模式,明年见。
长风破浪会有时,直挂云帆济沧海。
突然收到信息说出分了,赶忙去查了一下。
PJ:70+100+65+80=315
不出意料 T1 假做法果然挂了分。
TG:50+0+44+0=94
出乎意料,比估分高,骗分很给力
OVER