HuangBarry
2024-10-27 14:11:40
坐标SC,我的第一篇游记。
为什么不谈 S2?---S 组初赛没过555。//刚学 1 year
上完语文补习回来,睡。
起床,去 MDL 买了个性价比套餐,前去考场的路上记了格雷码(下拉异或……)。
进入学校,全部人站在操场上,所有人被老师带去教室。见到了一个学校里不太熟的,进度比我后,但不知道我实力,还在那嘲讽我。还见到两个在外面学的同学。
开考,选择基本全会,除了那个图,没想到真考了格雷码。阅读怎么这么水,dp 数据也这么小,完善也一样水,汉诺塔 DFS 秒出答案。
出考场,第一步洛谷上找答案,一对,93.5(答案记准考证上带出来的),汉诺塔全对,稳啦!!!
下午 S 没上 30 呜呜呜,丸辣。//其实主要还是心态有问题,自己觉得自己没这个水平,除了前十五道选择其他全蒙的,以至于完善答案 AAAAAAABAA
我 BBBBBBBABB
。
当天中午在学校午睡时把副校吵醒被请家长了,我爸非常冰冷的告诉我了成绩(和估分一模一样)。
疯狂补知识点,只留了一天来写文化课作业,集训最后一天在外学的机构举办了一个活动,拿了个团队赛第一。
还是补完语文回来,玩了半小时沙威玛,开始临时抱佛脚,一点押题经验没有,觉得会考高精,因为好几年没考了,硬是把模版全背了,还把 STL 和 dp 全重学了一下。
闹钟响了。(当时醒了一下的)
丸辣,起晚了!!!(赶去考场),在路上和其他学信竞在微信上聊天,发现他们大部分都在成外高中部。
幸亏家离考场不远,进入考场,遇到好几个认识的,感觉巨紧张。
开考。
一开始理解错题意了,第十分钟才写出来,这一眼用 map
来记录是否需要借,为了减时间复杂度,还写了个 unordered_map
。
模拟+DFS,难度还行(但还是调了半小时),至少考场上所有大样例全都过了。
第一眼:DFS,直接验证想法,半个小时写出来了,这运行速度20分都拿不到,开始找数学,又花半小时写出来了,去上了个厕所压压惊。
没看懂题目,写了个逆天代码,具体看下文。
玩画图+研究 Linux(之前没用过任何 Linux 的系统)。
去我外面的信竞班上课了,老师说让我们放松了一下,但我还是把洛谷 CSP-J 自测写了。
100分。
80分,丸辣!!!开始为 T3 而紧张。
100分,稳啦!!!写了个T3 题解,已过。
诶?(100+100+100+0=)300???
以后无论怎样都得拼一下。(但凡拼一下我就大概率能考s2了呜呜呜)
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
int n,ans=52;
unordered_map<string,bool>m;
string pai;
int main(){
freopen("poker.in","r",stdin);
freopen("poker.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n;
while(n--){
cin>>pai;
if(!m[pai]){
ans--;
m[pai]=1;
}
}
cout<<ans<<endl;
return 0;
}
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
const int N=1e3+13;
int t,n,m,k,x,y,d,ans;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
char Map[N][N];
bool vis[N][N];
void dfs(int xx,int yy,int dd){
if(!k)
return;
for(int i=0;i<4;i++){
if(!k) return;
if(i!=0) k--;
int nx=xx+dx[(dd+i)%4];
int ny=yy+dy[(dd+i)%4];
if(nx<1||ny<1||nx>n||ny>m||Map[nx][ny]=='x')
continue;
else{
if(!k) return;
k--;
if(!vis[nx][ny])
ans++;
vis[nx][ny]=1;
dfs(nx,ny,dd+i);
break;
}
}
}
int main(){
freopen("explore.in","r",stdin);
freopen("explore.out","w",stdout);
ios::sync_with_stdio(false);
cin>>t;
while(t--){
ans=1;
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
vis[i][j]=0;
cin>>x>>y>>d;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>Map[i][j];
vis[x][y]=1;
dfs(x,y,d);
cout<<ans<<endl;
}
return 0;
}
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
int t,n;
string ans="";
int main(){
freopen("sticks.in","r",stdin);
freopen("sticks.out","w",stdout);
ios::sync_with_stdio(false);
cin>>t;
while(t--){
ans="";
cin>>n;
if(n==1){
cout<<-1<<endl;
continue;
}else if(n==10){
cout<<22<<endl;
continue;
}
if(n>=11&&(n-11)%7==0){
n-=11;
cout<<20;
}else if(n>=17&&(n-17)%7==0){
n-=17;
cout<<200;
}else
switch(n%7){
case 1:
ans+="10";
n-=8;
break;
case 2:
ans+="1";
n-=2;
break;
case 3:
ans+="7";
n-=3;
break;
case 4:
ans+="4";
n-=4;
break;
case 5:
ans+="2";
n-=5;
break;
case 6:
ans+="6";
n-=6;
break;
}
while(n){
n-=7;
ans+="8";
}
cout<<ans<<endl;
}
return 0;
}
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
int t,n,k,q,l,x,y;
int main(){
freopen("chain.in","r",stdin);
freopen("chain.out","w",stdout);
ios::sync_with_stdio(false);
cin>>t;
while(t--){
cin>>n>>k>>q;
for(int i=1;i<=n;i++){
cin>>l;
for(int j=1;j<=l;j++)
cin>>k;
}
while(q--){
cin>>x>>y;
cout<<(x+y>=x*y)<<endl;
}
}
return 0;
}