首页 > 代码库 > hdu 1176
hdu 1176
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 数塔问题<br>#include<iostream> #include<cstring> using namespace std; int a[100009][12]; int maxi( int a, int b, int c) { int max1; max1=a>b?a:b; max1=max1>c?max1:c; return max1; } int main() { int n,x,y; while (cin>>n) { if (n==0) break ; int max=0; memset (a,0, sizeof (a)); for ( int ii=0;ii<n;ii++) { scanf ( "%d%d" ,&x,&y); //cin>>x>>y; a[y][x]++; if (y>max) max=y; } for ( int i=max-1;i>=0;i--) { if (a[i+1][0]>a[i+1][1]) a[i][0]+=a[i+1][0]; else a[i][0]+=a[i+1][1]; for ( int j=1;j<=9;j++) a[i][j]+=maxi(a[i+1][j],a[i+1][j-1],a[i+1][j+1]); if (a[i+1][10]>a[i+1][9]) a[i][10]+=a[i+1][10]; else a[i][10]+=a[i+1][9]; } cout<<a[0][5]<<endl; } return 0; } |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。