HDOJ 2084 수 탑

제목 링크:http://acm.hdu.edu.cn/showproblem.php?pid=2084
 간단 한 DP
소스 코드
//HDOJ 2084     AC
#include <iostream>
using namespace std;

int p[101][101];//  
int m[101][101]; //       i  j         

int main(){
	int N,i,j,max;
	int nCase;
	cin>>nCase;
	while(nCase--){
		cin>>N;
		max=0;//        

		//    
		for(i=1;i<=N;i++){
			for(j=1;j<=i;j++){
				cin>>p[i][j];
			}
		}

		for(i=1;i<=N;i++){
			for(j=1;j<=i;j++){
				if(j==1){//   i      ,                        j   m[i-1][j]
					m[i][j]=m[i-1][j]+p[i][j];
				}
				else if(j==i){ //                  m[i-1][j-1]        p[i][j]
					m[i][j]=m[i-1][j-1]+p[i][j];
				}
				else{  //    ,           
					if(m[i-1][j-1]+p[i][j]>m[i-1][j]+p[i][j]){
						m[i][j]=m[i-1][j-1]+p[i][j];
					}
					else{
						m[i][j]=m[i-1][j]+p[i][j];
					}
				}
				//cout<<"m["<<i<<"]["<<j<<"]"<<m[i][j]<<endl;
				if(m[i][j]>max){
					max=m[i][j];
					//cout<<"max:"<<max<<endl;
				}

			}
			//cout<<endl;
		}
		cout<<max<<endl;
	}
	return 0;
}

좋은 웹페이지 즐겨찾기