专栏文章

2025 HA CSP-S 迷惑行为欣赏

休闲·娱乐参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@min2t402
此快照首次捕获于
2025/12/01 19:38
3 个月前
此快照最后确认于
2025/12/01 19:38
3 个月前
查看原文
这是作者手动整理的,难免会出现纰漏,并且对于一个在 HA 的初三生来说,看完四千份代码是几乎不可能的。
如果你的代码出现在这里面且你认为侵权,可以私信我删除。当然也欢迎各位身处 HA 的 OIers 来投稿 ~
J 组的参赛选手太多了,现在估计没时间整理,以后可能会跟进。

1.HA CSP-S 成绩概况

众所周知,HA 的信竞实力较弱,看看今年的情况各位就知道了
本次比赛,全省参加人数 973973 人。其中,有分人数 668668 人,保龄 305305 人,人数比为 0.3130.313,相当于每十个人里就有三人保龄。
全省分数小于 3030 的有 624624 人,这些人都是没拿到奖项的天才。
而全省达到全国一等线的人仅仅只有 113113 人(~当然不包括我~),另有三人 AK,在这里膜拜一下。
针对今年 HA 的 S 组考试情况,有人戏称:“HA 的保龄率已经大于了一半”。

2.神奇代码分析

  • 超长 0 分代码
    出自第 973 位选手。
    这位选手的第一题写了个两百多行的代码,结果出现了 RE、WA 与 TLE,真的很绝望,~默哀~。
选手代码(很长)CPP
#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct node{
	ll a,b,c;
};
struct awa{
	ll ab,bc,ca;
};
bool cmp(ll a,ll b){
	return a<b;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	freopen("club.in","r",stdin);
	freopen("club.out","w",stdout);
	ll t;
	cin>>t;
	while(t--){
		ll n,ans=0;
		cin>>n;
		vector<node>qwq(n);
		vector<awa>awa(n);
		for(int i=0;i<n;i++){
			cin>>qwq[i].a>>qwq[i].b>>qwq[i].c;
			awa[i].ab=abs(qwq[i].a-qwq[i].b);
			awa[i].bc=abs(qwq[i].c-qwq[i].b);
			awa[i].ca=abs(qwq[i].a-qwq[i].c);
		}
		ll cnta=0,cntb=0,cntc=0;
		vector<ll>ab;
		vector<ll>bc;
		vector<ll>ca;
		for(int i=0;i<n;i++){
			if(max(max(qwq[i].a,qwq[i].b),qwq[i].c)==qwq[i].a and cnta*2<n){
				cnta++;
				ans+=qwq[i].a;
				ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),awa[i].ab)-ab.begin()),awa[i].ab);
				ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),awa[i].ca)-ca.begin()),awa[i].ca);
			}else if(max(max(qwq[i].a,qwq[i].b),qwq[i].c)==qwq[i].b and cntb*2<n){
				cntb++;
				ans+=qwq[i].b;
				ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),awa[i].ab)-ab.begin()),awa[i].ab);
				bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),awa[i].bc)-bc.begin()),awa[i].bc);
			}else if(max(max(qwq[i].a,qwq[i].b),qwq[i].c)==qwq[i].c and cntc*2<n){
				cntc++;
				ans+=qwq[i].c;
				bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),awa[i].bc)-bc.begin()),awa[i].bc);
				ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),awa[i].ca)-ca.begin()),awa[i].ca);
			}else if(max(max(qwq[i].a,qwq[i].b),qwq[i].c)==qwq[i].a and cnta*2>=n){
				ll Tmp1=awa[i].ab;
				ll Tmp2=awa[i].ca;
				ll tmp1=ab[0];
				ll tmp2=ca[0];
				ab.erase(ab.begin());
				ab.erase(ab.begin());
				if(cntc*2>=n){
					if(Tmp1>tmp1){
						cntb++;
						ans+=qwq[i].a-tmp1;
						ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),Tmp1)-ab.begin()),Tmp1);
						ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp2)-ca.begin()),tmp2);
					}else{
						cntb++;
						ans+=qwq[i].a-Tmp1;
						ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
						ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp2)-ca.begin()),tmp2);
					}
				}else{
					if(Tmp1>Tmp2){
						if(tmp1>tmp2){
							if(Tmp2>tmp2){
								cntc++;
								ans+=qwq[i].a-tmp2;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),Tmp2)-ca.begin()),Tmp2);
							}else{
								cntc++;
								ans+=qwq[i].a-Tmp2;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp2)-ca.begin()),tmp2);
							}
						}else{
							if(Tmp2>tmp1){
								cntb++;
								ans+=qwq[i].a-tmp1;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),Tmp1)-ab.begin()),Tmp1);
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp2)-ca.begin()),tmp2);
							}else{
								cntc++;
								ans+=qwq[i].a-Tmp2;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp2)-ca.begin()),tmp2);
							}
						}
					}else{
						if(tmp1>tmp2){
							if(Tmp1>tmp2){
								cntc++;
								ans+=qwq[i].a-tmp2;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),Tmp2)-ca.begin()),Tmp2);
							}else{
								cntb++;
								ans+=qwq[i].a-Tmp1;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp2)-ca.begin()),tmp2);
							}
						}else{
							if(Tmp1>tmp1){
								cntb++;
								ans+=qwq[i].a-tmp1;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),Tmp1)-ab.begin()),Tmp1);
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp2)-ca.begin()),tmp2);
							}else{
								cntb++;
								ans+=qwq[i].a-Tmp1;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp2)-ca.begin()),tmp2);
							}
						}
					}
				}
			}else if(max(max(qwq[i].a,qwq[i].b),qwq[i].c)==qwq[i].b and cntb*2>=n){
				ll Tmp1=awa[i].ab;
				ll Tmp2=awa[i].bc;
				ll tmp1=ab[0];
				ll tmp2=bc[0];
				ab.erase(ab.begin());
				bc.erase(bc.begin());
				if(cntc*2>=n){
					if(Tmp1>tmp1){
						cnta++;
						ans+=qwq[i].b-tmp1;
						ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),Tmp1)-ab.begin()),Tmp1);
						bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
					}else{
						cnta++;
						ans+=qwq[i].b-Tmp1;
						ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
						bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
					}
				}else{
					if(Tmp1>Tmp2){
						if(tmp1>tmp2){
							if(Tmp2>tmp2){
								cntc++;
								ans+=qwq[i].b-tmp2;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),Tmp2)-bc.begin()),Tmp2);
							}else{
								cntc++;
								ans+=qwq[i].b-Tmp2;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}
						}else{
							if(Tmp2>tmp1){
								cnta++;
								ans+=qwq[i].b-tmp1;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),Tmp1)-ab.begin()),Tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}else{
								cntc++;
								ans+=qwq[i].b-Tmp2;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}
						}
					}else{
						if(tmp1>tmp2){
							if(Tmp1>tmp2){
								cntc++;
								ans+=qwq[i].b-tmp2;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),Tmp2)-bc.begin()),Tmp2);
							}else{
								cnta++;
								ans+=qwq[i].b-Tmp1;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}
						}else{
							if(Tmp1>tmp1){
								cnta++;
								ans+=qwq[i].b-tmp1;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),Tmp1)-ab.begin()),Tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}else{
								cnta++;
								ans+=qwq[i].b-Tmp1;
								ab.insert(ab.begin()+(lower_bound(ab.begin(),ab.end(),tmp1)-ab.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}
						}
					}
				}
			}else if(max(max(qwq[i].a,qwq[i].b),qwq[i].c)==qwq[i].c and cntc*2>=n){
				ll Tmp1=awa[i].ca;
				ll Tmp2=awa[i].bc;
				ll tmp1=ca[0];
				ll tmp2=bc[0];
				ca.erase(ab.begin());
				bc.erase(bc.begin());
				if(cnta*2>=n){
					if(Tmp1>tmp1){
						cnta++;
						ans+=qwq[i].b-tmp1;
						ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),Tmp1)-ca.begin()),Tmp1);
						bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
					}else{
						cnta++;
						ans+=qwq[i].b-Tmp1;
						ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp1)-ca.begin()),tmp1);
						bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
					}
				}else{
					if(Tmp1>Tmp2){
						if(tmp1>tmp2){
							if(Tmp2>tmp2){
								cntb++;
								ans+=qwq[i].b-tmp2;
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp1)-ca.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),Tmp2)-bc.begin()),Tmp2);
							}else{
								cntb++;
								ans+=qwq[i].b-Tmp2;
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp1)-ca.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}
						}else{
							if(Tmp2>tmp1){
								cnta++;
								ans+=qwq[i].b-tmp1;
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),Tmp1)-ca.begin()),Tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}else{
								cntb++;
								ans+=qwq[i].b-Tmp2;
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp1)-ca.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}
						}
					}else{
						if(tmp1>tmp2){
							if(Tmp1>tmp2){
								cntb++;
								ans+=qwq[i].b-tmp2;
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp1)-ca.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),Tmp2)-bc.begin()),Tmp2);
							}else{
								cnta++;
								ans+=qwq[i].b-Tmp1;
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp1)-ca.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}
						}else{
							if(Tmp1>tmp1){
								cnta++;
								ans+=qwq[i].b-tmp1;
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),Tmp1)-ca.begin()),Tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}else{
								cnta++;
								ans+=qwq[i].b-Tmp1;
								ca.insert(ca.begin()+(lower_bound(ca.begin(),ca.end(),tmp1)-ca.begin()),tmp1);
								bc.insert(bc.begin()+(lower_bound(bc.begin(),bc.end(),tmp2)-bc.begin()),tmp2);
							}
						}
					}
				}
			}
		}
		cout<<ans<<'\n';
	}
	return 0;
}
  • 似乎在致敬什么
    出自第 969 位选手的第四题。用一些符号拼出了一位故人,似乎是想借助故人的力量来祝自己 AK。
TA 的画作CPP
				 	 *************
				 	****-------****
 			  	   ****--**-**--****
 			      ****--*--*--*--****
  				 ****----*---*----****
				****------***-------****
	 		   ****	- xx   *   xx -  ****
	 		  *****	- xx  ***  xx -  *****
	 		** *******--*******--******* **
	 			 *-------*****--------*
	 			 *--------***---------*
	 			 **********************
				*	 yyyyyyyyyyyyyyy   *
				*	y oooooooooooooo y *
				*	 yyyyyyyyyyyyyyy   *
	 			 **********************
	 				****************
	 				****************
	 				****************
	 			************************
	 		********************************
	 	****************************************
	 	****************************************
	 	********	****************	********
	 	********    ****************     **********
 ____________****	****************   ** -------- **
			 ***	****************  ** -00000000- **
************ ***  	****************    -0000000000-
 ------------*** 	****************   -000000000000-
	   \*****|		****************  -00000000000000-
	 ***\***|		****************   -000000000000-
	**** \*|		****************    -0000000000-
   *****  *			****************     -00000000-
	 				****************      --------
	 				****************
	 				****************
	 				****************
	 				****************
	 				****************
	 				****************
	 			*******     *     *******
               *******      *      *******
              *******       *       *******
             *******        *        *******
            *******         *         *******
           ******           *          *******
         --------          ***          --------
        *0000000*          ***          *0000000* 
       ----------          ***          ----------
       ||||||||||          ***          ||||||||||
	   ||||||||||         *****         ||||||||||
       ----------         *****         ----------
       **********         *****         **********
       **********         *****         **********

  • 红温破防 1
    出自第 966 位选手的第一题,我们可以从代码中得知出 ta 只能输出样例,并且注释了一段话用来赞美出题人的美德。
题不是人写的
#include <bits/stdc++.h> using namespace std; int t,n[6]; int a[100005][4],dp[100005][5],b[4]; int main(){ freopen("club.in","r",stdin); freopen("club.out","w",stdout); cin>>t; int i=1; while(t--){ cin>>n[i]; i++; t=n[i]/2; for(int i=1;i<=n[i];i++){ for(int j=1;j<=3;j++){ cin>>a[i][j]; } } } if(t==3){ cout<<18<<endl<<4<<endl<<13; }else if(t==5){ if(n[1]==10) cout<<147325<<endl<<125440<<endl<<152929<<endl<<150176<<endl<<158541; else if(n[1]==30) cout<<447450<<endl<<417649<<endl<<473417<<endl<<443896<<endl<<484387; else if(n[1]==200) cout<<2211746<<endl<<2527345<<endl<<2706385<<endl<<2710832<<endl<<2861471; else if(n[1]==100000) cout<<1499392690<<endl<<1500160377<<endl<<1499846353<<endl<<1499268379<<endl<<1500579370; } return 0; } //ƴ�� //ti bu shi ren xie de,ji qi hou mian suo you ti //gei xia jie kao sheng yi ge zhong gao //luogu suo----yanqing_
  • 神秘 CE 代码
    出自第 953 位选手的所有代码。
    可以看到,这位选手的代码不仅先用了个 freopen 再用了个 fclose 并且将 rw 写反了,~我不明白这位是咋进到复赛的~,并且代码写得也是很神奇。
CE 战神 1
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; struct note{ int a1,a2,a3,maxn,j; }; bool cmp(note a,note b) { return a.maxn>b.maxn; }; note p[N]; int main() { freopen("road.in","w",stdin); fclose("road.out","r",stdout); int t; cin>>t; while(t) { int n,m[4],ans=0; cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=3;j++) cin>>a[i][j]; } for(int i=1;i<=n;i++){ for(int j=1;j<=3;j++) {ans+= } } return 0; }
  • 4 个 CE
    与上一位比起来是有过之而无不及,三道题的 int main() 前面都少了一个分号,还有一道题函数后面不加括号又爆了,不知道的以为是在给伟大的 CCF 捐款。
CPP
if(solve){//没加括号,solve 是一个 bool 函数。
    sum+=max(max(a[i][1],a[i][2]),a[i][3]);
}else{
    sum+=min(max(a[i][1],a[i][2]),max(a[i][2],a[i][3]));
}
  • 玩小恐龙玩上瘾了
    第 864 选手是与上一位一样的 4 个 CE,不过不同的是,这位选手的其余代码显示的是空的,只有第 1 题写了一个令人不解的注释掉的 freopenfcloth(是的,ta 还把 fclose 写错了)与一个 if 语句的空壳。
    别的时间干啥去了别问我。

3.结语

我只能说 HA 还是不养闲人,总共不到一千人,能出来这么多牛人,不放出来看看可惜了。
现在我所找到的代码还是太少了,并且搜索效率比较低下。
同时也希望大家多多投稿,评论或者私信我都行,我到时候也会统一发出来。

评论

0 条评论,欢迎与作者交流。

正在加载评论...