Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 13931 | Accepted: 9230 |
Descriptionios
7Then the other cows traverse the triangle starting from its tip and moving "down" to one of the two diagonally adjacent cows until the "bottom" row is reached. The cow's score is the sum of the numbers of the cows visited along the way. The cow with the highest score wins that frame.
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Inputide
Outputthis
Sample Inputspa
5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
Sample Outputcode
30
題目連接:Cow Bowling
思路:簡單dp,白皮書入門dp。
1 /*====================================================================== 2 * Author : kevin 3 * Filename : CowBowing.cpp 4 * Creat time : 2014-09-18 10:59 5 * Description : 6 ========================================================================*/ 7 #include <iostream> 8 #include <algorithm> 9 #include <cstdio> 10 #include <cstring> 11 #include <queue> 12 #include <cmath> 13 #define clr(a,b) memset(a,b,sizeof(a)) 14 #define M 400 15 using namespace std; 16 int s[M][M],dp[M][M]; 17 int main(int argc,char *argv[]) 18 { 19 int n; 20 while(scanf("%d",&n)!=EOF){ 21 clr(dp,0); 22 clr(s,0); 23 for(int i = 1; i <= n; i++){ 24 for(int j = 1; j <= i; j++){ 25 scanf("%d",&s[i][j]); 26 } 27 } 28 for(int i = 1; i <= n; i++){ 29 dp[n][i] = s[n][i]; 30 } 31 for(int i = n-1; i >= 1; i--){ 32 for(int j = 1; j <= i; j++){ 33 dp[i][j] = max(s[i][j] + dp[i+1][j],s[i][j] + dp[i+1][j+1]); 34 } 35 } 36 printf("%d\n",dp[1][1]); 37 } 38 return 0; 39 }