CSP-S 2023 迷惑行为大赏【AH】

· · 个人记录

引言

作者使用IDE:Dev C++ 5.11,搜索工具:Everything

本次比赛AH共有2493份代码,其中有20份代码未包含#include,有68份代码没有freopen,有6份代码没有main函数。

共有727人参赛,平均每人写了 3.429 份代码。

有3份代码大小超过100KB,均为game.cpp,另有1份代码大小为19KB,为lock.cpp,其余代码大小不超过10KB.

读前提醒

正篇

  1. 代码大小第一、第二名均为393KB,第三名为392KB,其中:

第一名共402063个字符,内含三份测试样例与疑似错解;

第二名共401891个字符,内含三份测试样例与 1 \leq n \leq 5 情况下的解法;

第三名共401179个字符,内仅含三份测试样例。

  1. 第一名非 game.cpp 的代码大小为19KB,共334行,18897个字符,内有大量重复代码,一起来感受一下:
for(int i=1;i<=n;i++){
            for(int j=1;j<=5;j++){
                if(j==1){
                flag[0][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[9][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[2][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[3][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[4][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[5][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[6][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[7][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[8][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[1][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=false;
            }

for(int i=1;i<=n;i++){
            for(int j=1;j<=4;j++){
                if(j==1){
                flag[(a[i][1]+1)%10][(a[i][2]+1)%10][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[(a[i][1]+2)%10][(a[i][2]+2)%10][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[(a[i][1]+3)%10][(a[i][2]+3)%10][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[(a[i][1]+4)%10][(a[i][2]+4)%10][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[(a[i][1]+5)%10][(a[i][2]+5)%10][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[(a[i][1]+6)%10][(a[i][2]+6)%10][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[(a[i][1]+7)%10][(a[i][2]+7)%10][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[(a[i][1]+8)%10][(a[i][2]+8)%10][a[i][3]][a[i][4]][a[i][5]]=true;
                flag[(a[i][1]+9)%10][(a[i][2]+9)%10][a[i][3]][a[i][4]][a[i][5]]=true;
            }

if(j==5){
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][0]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][1]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][2]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][3]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][4]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][5]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][6]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][7]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][8]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][9]=true;
                flag[a[i][1]][a[i][2]][a[i][3]][a[i][4]][a[i][5]]=false;
                }
            }
  1. 注释人
int main(){
    //freopen("lock.in","r",stdin);
    //freopen("lock.out","w",stdout);
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=5;j++){

        }
    }

不得不说,今年的真正的注释人少了不少

  1. 放弃人
#include<bits/stdc++.h>
#include<time.h>
using namespace std;
int main(){
    ios::sync_with_stdio(0);
    srand(time(0));
    //freopen("tree.in","r",stdin);
    //freopen("tree.out","w",stdout);
    cout<<rand()%30000;
    return 0;
}
/*
 *I give this up
 */
  1. buff人 (测样例 + *.ans
int main()
{
   freopen("game2.in","r",stdin);
   freopen("game2.ans","w",stdout);
   ...
   return 0;
}
  1. 如你所愿
//freopen("tree.in","r",stdin);
//freopen("tree.out","w",stdout);
//wo xiang shang jian qie ban
//CGZ AK IOI
//YJR AK IPYO
//LCX AK IMO
//I become a cow-horse
//I LOVE CCF,everyone rp++
  1. RP++
#include<bits/stdc++.h>
using namespace std;
int main(){
     freopen("struct.in","r",stdin);
     freopen("struct.out","w",stdout);
     int rp=0;
     while(rp<2100000000)rp++;
     return 0;   
}
//priority_queue< int,vector<int>,greater/less<int> >
//pair<,>
//memcpy(a,b,n):b->a
//CSP-S 2023 RP++!
/*
1
0 0 1 1 5
*/
  1. qwqqaq
map<ll,int> mp,Mp;
int n,tot,cnt,fr[N];ll pos[N],qwq[N],QwQ[N]; char ops[20],opt[N*N];
//Author: Haitang0520 with dXqwq
ans += mp[hsh * qwq + hsh1];
mp[hsh * qwq + hsh1]++;

本期特邀嘉宾:T2测试数据

cvqaqqg
rnqaqjc
oyqaqnp
...(共计13处)
  1. stoorz
/*
stO XYF Orz

sto CLS Orz

stO X Q Orz

*/
...
20

stO syksykCCC Orz
*/
//mwr au orz

本期特邀嘉宾:T2测试数据

gistoov
msstoaf
ivstojl
...(共计10处)

tgorzpm
pworzvn
erorzga
...(共计13处)
  1. 阴语鬼才
//Poor me, I can't solve this problem, it is so difficult for me that I give up thinking about it.
//Poor me, I couldn't solve this problem, it was so difficult for me that I gave up thinking about it.
//Poor me, the problem can't be solved by me, I am gave up thinking about it because of its difficulty.
  1. 写游记人
/*
/*
CSP-S 2023 travel log

16:00
I have been AFO for over 1 month, forgetting all of the templates. T1 seems to be not difficult but I have no confidence on working out it. T2 is a problem about string. T3 is a 大模拟(oh no I even forgot lots of nouns) whose answer is wrong at first(oh CCF).T4 is too hard to understand what kind of 算法 it signals for me! My eyes are't feeling well and I don't want to solve T2-4!
17:02
因为发现 my English is too poor,还是用中文吧。写了 T3 的操作 1、2,感觉后面不会了。周围大佬们的打字声及其具有压迫感,而我只想睡觉。
17:10
今天玩梗玩魔怔了,再玩玩。“拿下,拿下,一定要拿下!”一个谁都不能拿下,一个谁都不能拿下,也是绝了。
17:18
突然意识到,当我有闲情雅致写赛时日志时,证明我已经看淡了。嗟乎!念旧日热情,感慨不已。
17:21
这大模拟果然碰都不该碰。
17:24
听这男性老者唧哩呱啦和中年女同事讲个不停才想起来怎么每年都是这两人监考啊。
17:33
写了下操作 3,随手粘贴了下样例 2 发现目前为止写的都是错的,摆了。
17:40
还有 50min 才结束,我想回家打 florr...垃圾手机又开不开机,路上玩不了了。
17:44
出去排废发现好冷啊。
17:50
T2T4 输出 rand(), 能拿分说明我运气成为传奇,嗯。
17:54
发现 Code::Blocks 可以背单词,只不过是英英辞典。
18:22
快结束了,T2 暴力没写出来。
*/
*/
  1. 恶臭人
struct lei{
    string ty,name;
    int hou;
}str[114514];
int a,c,n,y114514;
int n,a[114514],b[114514],c[114514],G[114][114],x,y;
  1. 难评路站到了,请从列车前进方向左侧车门下车

(图片引自百度,侵删)

/*
Dream(Clay)保佑,CSP-S2023 RP++,代码无bug!
Notch保佑,CSP-S2023 RP++,代码无bug!
圆神(Kaname Madoka)保佑,CSP-S2023 RP++,代码无bug!
为焰魔(Akemi Homura)献上一只QB,保佑CSP-S2023 RP++,代码无bug!
*/
/*
CCF coin collect!
FUCk CCf!
*/
/*
永远喜欢圆神(Kaname Madoka)!
永远喜欢焰魔(Akemi Homura)!
永远喜欢炮姐(Misaka Mikoto)!
永远喜欢杏子!
永远喜欢沙耶香!
永远喜欢黑子!
永远喜欢麻美!
永远喜欢石蜂操折!
永远喜欢初音Miku!
永远喜欢洛天依!
永远喜欢奈芙莲!
最后,永远喜欢珂朵莉!!!
*/
/*
圆焰太甜了!
红蓝太甜了!
黄白太甜了!
至于QB,剁了!
*/
/*
OI什么的,不干了啦!
从今天起,AFO!
*/
  1. 文明人
for(int i=0;i<n-1;i++)
        {
            while(!f.empty()) f.pop();
            f.push(k[i]);
            for(int j=i+1;j<n;j++)
            {
                if((!f.empty()&&k[j]!=f.top())||f.empty()) f.push(k[j]);
                else
                {
                    if(!f.empty()) f.pop();
                    if(f.empty()) fuck++;
                }
            }
        }
        cout<<fuck;
#include<bits/stdc++.h>
using namespace std;
int main()
{
    freopen("tree.in","r",stdin);
    freopen("tree.out","w",stdout);
    cout<<5;
    //fuck you ccf!!!!!!!!!!!!!!!
    //return me ¥460!!!!!!!
    return 0;
}
  1. 文件夹建错人

    • AH-S00529HMT
    • AH-S0296
  2. rand人

#include <bits/stdc++.h>
using namespace std;
int main(){
    freopen("tree.in","r",stdin);
    freopen("tree.out","w",stdout);
    random_device rd;
    cout<<rd()%10;
    return 0;
}
if(n==200000){
      int p=rand();
      cout<<p;
      return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){
    freopen("struct.in","r",stdin);
    freopen("struct.out","w",stdout);
    int t;
    cin>>t;
    srand(time(0));
    while(t--)
    {
        int op; 
      cin>>op;
        cout<<rand()<<endl; 
    }
    return 0;
}
  1. 有趣的注释
//else cout<<"NOMMMMMMM"<<endl;
...
    return 0;
}
//unfinished
lock.cpp:
/*
Finished at 16:10

# 16:10
T3 写不动来 T1 了,结果出奇的简单?
是不是理解错题意了,这个不是大常数(10^2 量级)O(n) 的吗,怎么 n 就 8?

*/

game.cpp:
/*
# 17:05
开题。感觉区间 dp 能拿暴力分。

35-pts Brute-Force finished at 17:20

# 17:20
感觉这个和传统的方块消除题目主要有两个区别:一次只能消两个,并且不需要求步数/权值,只要求出是否可行。
应该只能从这两块下手优化了。
不过研究前先去做 T4,看能不能骗到暴力分。

*/

struct.cpp:
/*
# 14:25
打完板子。struct 这题怎么看着这么像大模拟啊。

# 14:30
还真是 /xia

15:45 Task 1 finished
16:10 Task 2 finished
16:30 Task 3 finished
17:00 Task 4 finished

# 17:00
耗时 2h 终于把 T3 过了,,,
开始糊其他题的暴力。

*/

tree.cpp
/*
# 18:10
打了半天暴力发现假了。
不过问题不大,性质 B 和 C 相当于是送分的,先打完这个再说。

25-pts Brute-Force finished at 18:21

# 18:22
最后 8min,冲 50pts 暴力。
不对 25pts 暴力假了 /fn
哦性质 B 是对的。还有 10pts。
然而时间不够了。摆。

*/
  1. 注释了,但是没注释人
    ifstream fin("tree.in");
    ofstream fout("tree.out");
    //freopen("lock.in","r",stdin);
    //freopen("lock.out","w",stdout);
    //freopen("tree.in","r",stdin);
    //freopen("tree.out","w",stdout);
  1. 计算圆面积人
const double PI=3.14159265358979;
fin>>n;
for(int i=1;i<=n;i++){
    fin>>a>>b>>c;
}
if(n<=20) fout<<n+1;
else{
    fout<<fixed<<setprecision(0)<<1.0*n*n*PI;
}
  1. AK人
//CCF AK IOI