xiaoke2021
2024-10-25 12:21:31
前置笑话:笔者在 CSP-J2023 赛场上一眼认定 T2 为 DP,于是战略跳题,死磕 T3,最终喜提
(此处应有 joker,但笔者太懒不放了)
火大,今年要一雪前耻。
不是 CCF 你让我去 BB 比赛?抽象了。
体测跑 50 米时侧翻了。伤得挺严重,还好是皮外伤。
校医说周六(24.10.26)能好?但愿吧。
线段树还不会,感觉 S 要爆了。
伤基本好了,但还是要带伤上考场了。
放学时遇到 rgw 了,聊了会儿天。他竟然坐车去 BB?恐怖如斯(需要 4h)。
提前出校门了。
上车了。
到 JSNJ 换乘了。
又上车了。
Arrived.
线段树 1 过了。没那么慌了。
我爸开始吃他的外卖了(
六点多就起来了。
进考场了。
T1 直接用 set。这也太水了,和 2023 的 T1 不能比。
#include<bits/stdc++.h>
using namespace std;
int n;
string s;
set<string> cnt;
int main(){
freopen("poker.in","r",stdin);
freopen("poker.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++) cin>>s,cnt.insert(s);
cout<<52-cnt.size();
return 0;
}
预计得分
开 T2。这啥啊?你这是 CSPJ 啊?梦回语法时代。
直接秒了。顺便写了点游记。
#include<bits/stdc++.h>
using namespace std;
int T;
int n,m,k;
int x,y,d;
char mp[1000+5][1000+5];
int dx[10+5]={0,1,0,-1},dy[10+5]={1,0,-1,0};
set<pair<int,int> > cnt;
bool check(int r,int c){
return r>=1&&r<=n&&c>=1&&c<=m&&mp[r][c]=='.';
}
int main(){
freopen("explore.in","r",stdin);
freopen("explore.out","w",stdout);
scanf("%d",&T);
while(T--){
cnt.clear();
scanf("%d %d %d",&n,&m,&k);
scanf("%d %d %d",&x,&y,&d);
cnt.insert(make_pair(x,y));
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>mp[i][j];
for(int i=1;i<=k;i++){
x+=dx[d],y+=dy[d];
if(check(x,y)) cnt.insert(make_pair(x,y));
else x-=dx[d],y-=dy[d],d=(d+1)%4;
}cout<<cnt.size()<<endl;
}
return 0;
}
//好强啊,29min AC T1 T2。
//今年这么喜欢出去重?
//T1 应该是这四年来(2021,2022,2023,2024)最水的题目了。
//T1 预计上位红/下位橙,T2 预计上位红(应该不会)/橙
//期望得分:100+100+0+0=200
//考虑到去年选手源代码中的汉字出现了问题,这里给出英文版本。
//Considering the Chinese character had some problems last year,provide English version here.
/*
Oh my,29min AC problem A and B.
So many unique this year?
Maybe problem A is the easiest problem of the four years(2021,2022,2023,2024).
I think problem A is hard red problem/easy orange problem,problem B is hard red(Probably not at all)/orange.
Expected score:100+100+0+0=200
*/
预计得分
开 T3。小木棍?哦哦不是那个小木棍。
怎么还有负数?看着文件名笑了半天。赛后发现一大堆写成 stick 的。
考场心情和思路变化记不清了,但代码下面有考场游记:
#include<bits/stdc++.h>
using namespace std;
int T;
int n;
int num[10+5]={0,0,1,2,4,7,8},val[10+5]={0,6,2,5,4,3,7};
bool spj(){
if(n==1){
cout<<"-1"<<endl;
return true;
}if(n==2){
cout<<"1"<<endl;
return true;
}if(n==3){
cout<<"7"<<endl;
return true;
}if(n==4){
cout<<"4"<<endl;
return true;
}if(n==5){
cout<<"2"<<endl;
return true;
}if(n==6){
cout<<"6"<<endl;
return true;
}if(n==7){
cout<<"8"<<endl;
return true;
}return false;
}
int main(){
freopen("sticks.in","r",stdin);
freopen("sticks.out","w",stdout);
cin>>T;
while(T--){
cin>>n;
if(spj()) continue;
int minlen=ceil((double)n/7);
int x=n;
// cerr<<" "<<minlen<<endl;
for(int i=1;i<=minlen;i++){
for(int j=1;j<=6;j++){
if(i==1&&j==1) continue;
if(ceil((double)(x-val[j])/7)==minlen-i){
x-=val[j];
cout<<num[j];
break;
}
}
}
puts("");
}
return 0;
}
//6 2 5 5 4 5 6 3 7 6
//0 1 2 3 4 5 6 7 8 9
//7 6 5 4 3 2
//8 0 2 4 7 1
/*
*/
/*
这题应该是个贪心?
《小木棍》一眼看到这个名字都吓死了(
《众所周知》,有一道和此题很像的题,就是贪心(只不过是求最大值)。
思路应该差不多。
思路大概是尽量用 8。如果还剩一些数,也就是 7 不能整除 n,那就将 (n mod 7)+7 分为两个数,然后输出 floor(n/7)-1 个 8。这步可以特判。如果能整除,那就输出 n/7 个 8。
9:40
样例过了。但不太放心。
如果这代码能过,此题将成为最简单 T3。
9:52
手搓了一个小样例:
Input
1
31
Output
22888
感觉没问题。暂且认为通过。
9:56
完了。数据造错了。算法假了。
10:11
重构代码。这下对了。
10:21
上了个厕所,准备开 T4。预计得分 100+100+100+0=300。
*/
/*
Maybe this problem is greedy?
Felt scared when I saw "sticks" (
There is a problem which is similar to this problem,and that problem is greedy(but that problem need to be given the largest answer).
9:40
Samples are accepted.But I'm worried about the correction of my code.
If this code can be accepted,it will be the easiet problem C.
9:52
I make a sample:
Input
1
31
Output
22888
I felt this code has no matter.
9:56
Oh no.My sample is incorrect.My algorithm is incorrect.
10:11
Had Written another code.Now the code is correct.
10:21
Went to the WC,and be ready to solve problem D.Expected score 100+100+100+0=300.
*/
预计得分
开 T4。看懂了。感觉不可写。摆了。
出考场。成功用自己的样例把同学们 hack 了。乐。ysz 有点破防。
回宾馆吃老乡鸡。睡觉。
T1 水题?但是由于自己太菜/看错题目,用了 1h 才写出来。预计得分
T2 看懂了。第一问写得很快,但怎么写不出第二问。
到考试结束都没写完。难受。S 一轮游了。
同学们都骗了分。我没时间骗分。
不知道怎么表达当时的感受。
预计得分
晚上和 ysz、yxs、ymy 和老师一起吃饭。rgw 和 zzx 赶火车先走了。
回宾馆后我们四个去 yxs 房间打 abc实际是去打 generals。
后来只有 ysz 在打 generals,我在原神启动,yxs 和 ymy 在打钢四。
欢乐的一晚。
测了 J T3 民间数据。怎么挂了?
完了,J
同学们都是 260?啊那没事了 /bx/bx
下午在车站和同学打亚诺。上车后继续一起打 generals。
然后就回家了。
出分。
J 260,S 120。
就我这S T2 还能 20pts?强。不过蓝勾拜拜 /qq
两个只学了一年 OI 的同学 ljx 和 gly J 300。我太菜了。
(maybe) AFO 一年,高一再战 CSPS。