BNU The Twin Towers
来源:互联网 发布:连接网络将服务器 编辑:程序博客网 时间:2024/04/28 18:44
http://www.bnuoj.com/bnuoj/problem_show.php?pid=15579
一动态规划题。。。看了别人的代码,照着打了一遍,动规还是不怎么会。。。想不到怎么建状态转移方程。。。和网络流里面不会建图一样。。。哭。。
AC代码:
#include <iostream>#include <cstdio>#include <limits.h>#include <string.h>#define max(a,b) a>b?a:b //如果a大于b则返回a的值,否则返回b的值using namespace std;int dp[2001],t[2001]; //dp[i]表示两塔差值为i时较低塔的最大高度。int main(){ int n,i,j,v; while(scanf("%d",&n) && n>=0) { memset(dp,-1,sizeof(dp)); memset(t,-1,sizeof(t)); dp[0]=t[0]=0; while(n--) { scanf("%d",&v); for(i = 0; i < 2001; i++) { if(dp[i] != -1) { if(i+v<2001) { t[i+v]=max(t[i+v],dp[i]); //加到高的塔上 } if(v<i) { t[i-v]=max(t[i-v],dp[i]+v); //加到低的塔上,且增加以后仍为较低塔 } else { t[v-i]=max(t[v-i],dp[i]+i); //加到低的塔上,增加以后变为较高塔 } } } memcpy(dp,t,sizeof(t)); } if(dp[0] == 0) { printf("Sorry\n"); } else { printf("%d\n",dp[0]); } } return 0;}
- BNU The Twin Towers
- The Twin Towers
- 10066 - The Twin Towers
- 10066 - The Twin Towers
- UVaOJ_10066 - The Twin Towers
- UVA10066 - The Twin Towers
- UVA 10066 - The Twin Towers
- uva 10066 The Twin Towers
- ZOJ2059 The Twin Towers,DP
- zoj 2059 The Twin Towers
- UVA 10066 The Twin Towers
- UVA 10066 The Twin Towers
- UVa 10066 - The Twin Towers
- UVa 10066 - The Twin Towers
- UVa 10066 - The Twin Towers
- UVa 10066 - The Twin Towers
- Uva-10066-The Twin Towers
- UVa:10066 The Twin Towers
- 虚拟机启动报错Unable to open kernel device "\\.\VMCIDev\VMX"
- Linux LCD驅動架構學習(二)
- zoj 1284||poj 1528||hdu 1323(筛选法求因子和)
- Dijkstra算法模板
- 深度缓冲区原理以及为什么要用它
- BNU The Twin Towers
- 二叉树遍历,已知前序遍历与中序遍历,求后续遍历 使用java(递归方式)实现
- jquery 获得keycode
- Linux基本操作 4----- Linux系统目录架构
- 网络
- 白书的一些题目
- 庞果网---回文字符串
- Qt 编码惯例
- poj 1659