2025 HA CSP-S 迷惑行为欣赏
这是作者手动整理的,难免会出现纰漏,并且对于一个在 HA 的初三生来说,看完四千份代码是几乎不可能的。
如果你的代码出现在这里面且你认为侵权,可以私信我删除。当然也欢迎各位身处 HA 的 OIers 来投稿 ~
J 组的参赛选手太多了,现在估计没时间整理,以后可能会跟进。
1.HA CSP-S 成绩概况
众所周知,HA 的信竞实力较弱,看看今年的情况各位就知道了。
本次比赛,全省参加人数
全省分数小于
而全省达到全国一等线的人仅仅只有
针对今年 HA 的 S 组考试情况,有人戏称:“HA 的保龄率已经大于了一半”。
2.神奇代码分析
-
超长 0 分代码
出自第 973 位选手。
这位选手的第一题写了个两百多行的代码,结果出现了 RE、WA 与 TLE,真的很绝望,~默哀~。
::::info[选手代码(很长)]
#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。
::::info[TA 的画作]
*************
****-------****
****--**-**--****
****--*--*--*--****
****----*---*----****
****------***-------****
**** - xx * xx - ****
***** - xx *** xx - *****
** *******--*******--******* **
*-------*****--------*
*--------***---------*
**********************
* yyyyyyyyyyyyyyy *
* y oooooooooooooo y *
* yyyyyyyyyyyyyyy *
**********************
****************
****************
****************
************************
********************************
****************************************
****************************************
******** **************** ********
******** **************** **********
____________**** **************** ** -------- **
*** **************** ** -00000000- **
************ *** **************** -0000000000-
------------*** **************** -000000000000-
\*****| **************** -00000000000000-
***\***| **************** -000000000000-
**** \*| **************** -0000000000-
***** * **************** -00000000-
**************** --------
****************
****************
****************
****************
****************
****************
******* * *******
******* * *******
******* * *******
******* * *******
******* * *******
****** * *******
-------- *** --------
*0000000* *** *0000000*
---------- *** ----------
|||||||||| *** ||||||||||
|||||||||| ***** ||||||||||
---------- ***** ----------
********** ***** **********
********** ***** **********
::::
-
红温破防 1
出自第 966 位选手的第一题,我们可以从代码中得知出 ta 只能输出样例,并且注释了一段话用来赞美出题人的美德。
::::info[题不是人写的]
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并且将r与w写反了,~我不明白这位是咋进到复赛的~,并且代码写得也是很神奇。
::::info[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 捐款。
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 题写了一个令人不解的注释掉的
freopen与fcloth(是的,ta 还把fclose写错了)与一个if语句的空壳。别的时间干啥去了别问我。
3.结语
我只能说 HA 还是不养闲人,总共不到一千人,能出来这么多牛人,不放出来看看可惜了。
现在我所找到的代码还是太少了,并且搜索效率比较低下。
同时也希望大家多多投稿,评论或者私信我都行,我到时候也会统一发出来。