警示后人

P1086 [NOIP2004 普及组] 花生采摘

~~省代码宗师~~
by pies_0x @ 2023-10-17 17:04:04


@[em_eemm_eeemmm_](/user/964645) ?
by wangtairan114 @ 2023-10-18 19:40:10


@[wangtairan114](/user/1023189) 13-21行 真的厉害
by pies_0x @ 2023-10-19 16:44:10


@[em_eemm_eeemmm_](/user/964645) 实际上这是压缩版本 ```cpp #include <bits/stdc++.h> //我展开是因为我用的Xcode不支持万能头 using namespace std; #define max(a,b) ((a)>(b)?(a):(b)) #define min(a,b) ((a)>(b)?(b):(a)) #define INF 0x3f3f3f3f #define f1(tp,l,i,j,k) for(tp l=i;l<=j;l+=k) #define f2(tp,l,i,j,k) for(tp l=i;l>=j;l-=k) #define vc(tp,nm) vector<tp> nm; #define pqg(tp,nm) priority_queue<tp,vector<tp>,greater<tp>> nm; #define ll long long #define pql(tp,nm) priority_queue<tp> nm; #define qq(tp,nm) queue<tp> nm; #define dq(tp,nm) deque<tp> nm; #define sc scanf #define pr printf #define v1 first #define v2 second #define scl(nm) scanf("%lld",&nm) #define sci(nm) scanf("%d",&nm) #define prn printf("\n") #define prl(nm) printf("%lld",nm) #define pri(nm) printf("%d",nm) #define prc(nm) printf("%c",nm) #define clearq(nm,tp) queue<tp> emp;swap(nm,emp); #define clearpair(nm,f,s) queue<pair<f,s>> emp;swap(nm,emp); string ssss,sssss; ll SUM,I,aaaa,Ii,recoff1; #define sfxto10(x,nm,nm2) ssss=nm;SUM=0;I=1;while(!ssss.empty()){SUM+=int(ssss[ssss.size()-1]-'0')*I; I*=x;ssss.erase(ssss.size()-1,1);}nm2=SUM; #define sf10tox(x,nm,nm2) aaaa=stol(nm);Ii=1; sssss="";while(Ii*x<=aaaa)Ii*=x; while(aaaa>0){if(Ii<=aaaa){recoff1=aaaa/Ii;aaaa%=Ii;sssss+=char(recoff1+'0');}else{sssss+="0";}Ii/=x;}while(Ii>0){sssss+="0";Ii/=x;}nm2=stol(sssss); #define fxto10(x,nm,nm2) ssss=to_string(nm);SUM=0;I=1;while(!ssss.empty()){SUM+=int(ssss[ssss.size()-1]-'0')*I; I*=x;ssss.erase(ssss.size()-1,1);}nm2=SUM; #define f10tox(x,nm,nm2) aaaa=nm;Ii=1; sssss="";while(Ii*x<=aaaa)Ii*=x; while(aaaa>0){if(Ii<=aaaa){recoff1=aaaa/Ii;aaaa%=Ii;sssss+=char(recoff1+'0');}else{sssss+="0";}Ii/=x;}while(Ii>0){sssss+="0";Ii/=x;}nm2=stol(sssss); //using namespace std; string rtsans; #define str string #define srn(nm1) nm1=rtsans; #define stransup(nm1) transform(nm1.begin(), nm1.end(), back_inserter(rtsans), ::toupper);srn(nm1); #define stransdown(nm1) transform(nm1.begin(), nm1.end(), back_inserter(rtsans), ::tolower);srn(nm1); char rtans; #define small(nm1) nm1>='a'&&nm1<='z'//used with "if" #define nsmall(nm1) nm1<'a'||nm1>'z'//used with "if" #define big(nm1) nm1>='A'&&nm1<='Z'//used with "if" #define nbig(nm1) nm1<'A'||nm1>'Z'//used with "if" #define isnum(nm1) nm1>='0'&&nm1<='9'//used with "if" #define crn(nm1) nm1=rtans; #define ctransup(nm1) if(small(nm1)){nm1=nm1-32;} #define ctransdown(nm1) if(big(nm1)){nm1=nm1+32;} #define bktsdown(nm1)nm1=nm1-26; #define bktsup(nm1)nm1=nm1+26; #define move(nm1,nm2) bool ok=0; if(small(nm1))ok=1;rtans=char(int(nm1)+nm2);crn(nm1);if(ok){if(nsmall(nm1)){if(nm2>0){while(nsmall(nm1))bktsdown(nm1);}else {while(nsmall(nm1))bktsup(nm1);}}}else{if(nbig(nm1)){if(nm2>0){while(nbig(nm1))bktsdown(nm1);}else{while(nbig(nm1))bktsup(nm1);}}} #pragma GCC optimize(3) int n,m,k,a[25][25]; struct pos{ int num,x,y; void set(int a1,int a2,int a3) { num=a1; x=a2; y=a3; } pos(){ num=0; x=0; y=0; } }p[630]; int main() { int cnt=0; sc("%d%d%d",&n,&m,&k); for(int i=1; i <= n; i++) { for(int j=1; j <= m; j++) { sc("%d",&a[i][j]); if(a[i][j]>0) { p[++cnt].set(a[i][j],i,j); } } } sort(p+1,p+cnt+1,[](pos x,pos y){return x.num>y.num;}); int cnt2=0; pos cur; cur.set(0,1,p[1].y); k--; for(int i=1; i <= n; i++) { if(abs(p[i].x-cur.x)+abs(p[i].y-cur.y)+1+p[i].x<=k) { cnt2+=p[i].num; k-=abs(p[i].x-cur.x)+abs(p[i].y-cur.y)+1; cur=p[i]; } else { cout <<cnt2; return 0; } // cout << k; } cout << cnt2; return 0; } ```
by wangtairan114 @ 2023-10-19 18:47:48


@[wangtairan114](/user/1023189) **看不懂啊,大佬**
by pies_0x @ 2023-10-20 16:56:05


@[em_eemm_eeemmm_](/user/964645) 恭喜你,是第一个叫我大佬的人(我自称蒟蒻~~不过刚看到红名人士自称蒟蒻~~)
by wangtairan114 @ 2023-10-20 16:57:46


@[wangtairan114](/user/1023189) 真看不懂
by pies_0x @ 2023-10-20 18:18:02


@[em_eemm_eeemmm_](/user/964645) 当我打完这些代码后发现无法按预期运行时,我崩溃了。之后删了大半,留下想要的。
by wangtairan114 @ 2023-10-20 21:02:33


|