NBUT 1456 Orianna (DP)
2015-08-21 22:54
441 查看
[1456] Orianna
时间限制: 1000 ms 内存限制: 65535 K问题描述
Orianna is the lady of clockwork that fights in League of Legends. She fights with her ball.
#pragma comprint(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<string> #include<iostream> #include<cstring> #include<cmath> #include<stack> #include<queue> #include<vector> #include<map> #include<stdlib.h> #include<time.h> #include<algorithm> #define LL __int64 #define FIN freopen("in.txt","r",stdin) using namespace std; const int MAXN=100000+5; const int INF=0x3f3f3f3f; int dp[MAXN][6][2]; int a[10+5][MAXN]; int main() { int n; while(scanf("%d",&n)!=EOF) { memset(dp,0,sizeof(dp)); for(int i=1;i<=5;i++) { for(int j=1;j<=n;j++) scanf("%d",&a[i][j]); } for(int i=1;i<=5;i++) { dp[1][i][0]=dp[1][i][1]=a[i][1]; } for(int i=2;i<=n;i++) { for(int j=1;j<=5;j++)//枚举本次球的编号 { for(int k=1;k<=5;k++)//枚举上次球的编号 { if(k>j) { dp[i][j][0]=max(dp[i][j][0],dp[i-1][k][1]+a[j][i]); } else if(k<j) { dp[i][j][1]=max(dp[i][j][1],dp[i-1][k][0]+a[j][i]); } } } } int ans=-INF; for(int i=1;i<=5;i++) { ans=max(ans,max(dp [i][1],dp [i][0])); } printf("%d\n",ans); } return 0; }
View Code
相关文章推荐
- uva 1453 - Squares(旋转卡壳)
- 黑马程序员——OC的内存管理——ARC
- linux下50个常用命令
- Libevent源码分析-timer和signal处理
- ssh常见错误
- 创建mysql数据库并指定编码
- 傻瓜都能看懂的网络流ek算法(poj1273)
- 【C++】万年历(时间计数器)
- Android的Service组件
- 要有被打断仍能够继续学习的能力
- 删除数据库mysql
- uva 10256 - The Great Divide(凸包)
- Easy Ui Layout控件
- 作业,大美农登录界面和设置密码
- 冒泡排序及两种优化方式
- js编程(选项卡)
- 今天开博客啦
- gnu-bash#1 介绍
- linux 查找文件或者服务
- 放弃是最难的进步,进步是最大的放弃