数塔
http://acm.hdu.edu.cn/showproblem.php?pid=2084
#include <map> #include <cstdio> #include <stack> #include <cmath> #include <queue> #include <string> #include <queue> #include <cstring> #include <iostream> #include <algorithm> #define lid id<<1 #define rid id<<1|1 #define closein cin.tie(0) #define scac(a) scanf("%c",&a) #define scad(a) scanf("%d",&a) #define print(a) printf("%d\n",a) #define scald(a) scanf("%lld",&a) #define debug printf("hello world") #define form(i,n,m) for(int i=n;i<m;i++) #define mfor(i,n,m) for(int i=n;i>m;i--) #define nfor(i,n,m) for(int i=n;i>=m;i--) #define forn(i,n,m) for(int i=n;i<=m;i++) #define scadd(a,b) scanf("%d%d",&a,&b) #define memset0(a) memset(a,0,sizeof(a)) #define scaldd(a,b) scanf("%lld%lld",&a,&b) #define scaddd(a,b,c) scanf("%d%d%d",&a,&b,&c) #define scadddd(a,b,c,d) scanf("%d%d%d%d",&a,&b,&c,&d) #define INF 0x3f3f3f3f #define maxn 50000 #define mod 1000000007 typedef long long ll; using namespace std; //---------AC(^-^)AC---------\\ int num[105][105],dp[105][105]; int main() { int t; scad(t); while(t--) { memset(dp,0,sizeof(dp)); int n; scad(n); for(int i=1;i<=n;i++) { for(int j=1;j<=i;j++) scad(num[i][j]); } int ans=0; for(int i=1;i<=n;i++) { for(int j=1;j<=i;j++) { if(j-1>0) dp[i][j]=max(dp[i-1][j-1]+num[i][j],dp[i-1][j]+num[i][j]); else dp[i][j]=dp[i-1][j]+num[i][j]; ans=max(dp[i][j],ans); } } print(ans); } return 0; }
MILE NEVER GIVE UP!!!