bzoj 3997: [TJOI2015]组合数学
最长反链???什么鬼。。(今天真是sb,扒了一天题解,,)
(自己画图看了一下,感觉答案适合从右上到左下那个对角线有点py交易,,然后想了一下,好难写,就开心扒题解了。。)
1 #include <bits/stdc++.h> 2 #define LL long long 3 #define lowbit(x) x&(-x) 4 #define inf 0x3f3f3f3f 5 #define eps 1e-5 6 #define N 1005 7 using namespace std; 8 inline int ra() 9 { 10 int x=0,f=1; char ch=getchar(); 11 while (ch<'0' || ch>'9') {if (ch=='-') f=-1; ch=getchar();} 12 while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();} 13 return x*f; 14 } 15 int n,m; 16 int a[N][N],f[N][N]; 17 int main() 18 { 19 int T=ra(); 20 while (T--) 21 { 22 n=ra(); m=ra(); 23 for (int i=1; i<=n; i++) 24 for (int j=1; j<=m; j++) 25 a[i][j]=ra(); 26 for (int i=1; i<=n; i++) 27 for (int j=m; j>=1; j--) 28 f[i][j]=max(f[i-1][j+1]+a[i][j],max(f[i-1][j],f[i][j+1])); 29 cout<<f[n][1]<<endl; 30 } 31 return 0; 32 }