10分求调教

P1005 [NOIP2007 提高组] 矩阵取数游戏

``` #include <bits/stdc++.h> #define ll __int128 using namespace std; const ll Maxn=87; ll N,M,f[Maxn][Maxn],a[Maxn][Maxn],ans,base[Maxn]; inline ll qread(){ char ch;ll x=0;bool f=0; while((ch=getchar())<'0'||ch>'9') if(ch=='-') f=1;x=(ch^48); while((ch=getchar())>='0'&&ch<='9') x=x*10+(ch^48); return f?-x:x; } inline void write(ll x){ if(x<0) x=-x,putchar('-'); if(x>9) write(x/10); putchar('0'+(x%10)); } inline ll dp0(ll x){ memset(f,0,sizeof f); for(ll i=1;i<=M;i++) for(ll j=M;j>=i;j--) f[i][j]=max(f[i][j],max(f[i-1][j]+base[M-j+i-1]*a[x][i-1],f[i][j-1]+base[M-j+i-1]*a[x][j+1])); ll maxn=0; for(ll i=1;i<=M;i++) maxn=max(maxn,f[i][i]+a[x][i]*base[M]); return maxn; } int main(){ N=qread(),M=qread(); base[0]=1; for(ll i=1;i<=84;i++) base[i]=base[i-1]*2; for(ll i=1;i<=N;i++) for(ll j=1;j<=M;j++) a[i][j]=qread(); for(ll i=1;i<=N;i++) ans+=dp0(i); write(ans); return 0; } ```
by Adchory @ 2023-03-11 16:43:50


wyy,jbl
by cccyyyxxx @ 2023-03-11 16:44:17


……题目6
by Populus_euphratica @ 2023-03-11 16:44:22


6666666666
by __zaa__ @ 2023-03-11 16:45:07


qp
by SilverLi @ 2023-03-11 17:14:40


调教,指调整校对。
by Anomie @ 2023-03-11 17:25:41


同 $10$ pts,Cu Ball
by mukari @ 2023-03-11 18:56:41


改好了,是转移写错力
by Adchory @ 2023-03-23 17:38:35


6
by woizkx @ 2023-06-18 17:01:00


|