https://cn.vjudge.net/problem/HDU-4283

题目大意n个人轮流上台,第i个人有一个屌丝值Di 当他为第k个上台的人时候会获得屌丝值(K-1)*Di,

这些人轮流上台,有个小黑屋可以改变顺序,功能和栈一样后进先出。

然后通过这个小黑屋改变顺序使总屌丝值最小。

对于i-j个人中。第i个人他可以是1 -- j-i+1个人出场,。

即 i...i+1 i+2....j  若想i第k出场则把i-i+k-1塞进小黑屋。所以 i+1 __ i+k-1在i前   i+k __ j 在i后

那么就有转移方程 dp[i][j] = dp[i+1][i+k-1]+dp[i+k][j]+(k-1)*d[i]+k*sum(i+k,j);

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
#include<math.h>
#include<queue>
#define lowbit(x)  (x&(-x))
const double eps=1e-8;
const int inf=0x3f3f3f3f;
using namespace std;
const int maxn=1e2+7;
typedef long long ll;
#define ls rt<<1
#define rs rt<<1|1
#define m(i) (node[i].l+node[i].r)>>1
int d[maxn],dp[maxn][maxn],s[maxn];
int sum(int l,int r)
{if(r < l) return 0;return s[r]-s[l-1];
}int main()
{int t,n,cas = 1;scanf("%d",&t);while(t--){scanf("%d",&n);s[0] = 0;for(int i = 1;i <= n;i++){scanf("%d",&d[i]);s[i] = s[i-1]+d[i];}int st = 0;memset(dp,0,sizeof(dp));for(int i = 1;i <= n;i++)for(int j = 1+i; j <= n;j++)dp[i][j] = inf;/*dp[i][j] i-j  i第k个上台 i+1 __ i+k-1在他前 i+k __ j 在他后 k可以任意。dp[i][j] i在i-j任意一次完成时的最优解 dp[i][j] =  dp[i+1][i+k-1] + dp[i+k][j] + v[i]*(k-1);  */for(int l = 1;l <= n;l++){for(int i = 1;i+l-1 <= n;i++){int j = i+l-1;// printf("dp[%d][%d] = %d\n",i,j,dp[i][j]);for(int k = 1;k <= l;k++){dp[i][j] = min(dp[i][j],dp[i+1][i+k-1]+dp[i+k][j]+d[i]*(k-1)+(k)*sum(i+k,j));//          i在第k时 i+1 -- i+k-1在i之前 i+k -- j 在i之后//      需要加上i的消耗, i+k--j的消耗 //     printf("dp[%d][%d][%d] = %d\n",i,j,k,dp[i+1][i+k-1]+dp[i+k][j]+d[i]*(k-1)+k*sum(i+k,j));}//       printf("dp[%d][%d] = %d\n",i,j,dp[i][j]);}}printf("Case #%d: %d\n",cas++,dp[1][n]);}return 0;
}

You Are the One HDU - 4283 区间DP相关推荐

  1. Palindrome subsequence HDU - 4632 区间dp|记忆化搜索

    // 区间dp import java.util.Scanner;/**** @author CN*/ public class main {static int mod = 10007;static ...

  2. The 2014 ACM-ICPC BeiJing D - Dire Wolf HDU - 5115 区间dp

    题意 n个狼 排成一排 我们要把一排狼都删除掉 删除一个狼的花费是这个狼的权值和左右两个狼的附加值 求最小花费 分析 考虑区间dp dp[i][j]表示i到j的最小花费 我们可以枚举其中的k 为序列中 ...

  3. hdu 2476 区间dp

    题意: 给出两个串s1和s2,一次只能将一个区间刷一次,问最少几次能让s1=s2 例如zzzzzfzzzzz,长度为11,我们就将下标看做0~10 先将0~10刷一次,变成aaaaaaaaaaa 1~ ...

  4. hdu 4745 区间dp

    题意:求一个环的最长回文序列,是序列不是串 链接:点我 起点是可以任意的, 所以只要求出每个区间的最长回文序列之后取max(dp[1][i]+dp[i+1][n]),即可得最终答案 本来是想扩展两倍的 ...

  5. hdu 5115 区间dp 狼BUFF

    题目大意:你是一个战士现在面对,一群狼,每只狼都有一定的主动攻击力和附带攻击力.你杀死一只狼.你会受到这只狼的(主动攻击力+旁边两只狼的附带攻击力)这么多伤害~现在问你如何选择杀狼的顺序使的杀完所有狼 ...

  6. HDU 5115 Dire Wolf 区间dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5115 Dire Wolf Time Limit: 5000/5000 MS (Java/Others ...

  7. HDU 5693 D Game 区间dp

    D Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5693 Description 众所周知,度度熊喜欢的字符只有两个:B 和D. 今天,它 ...

  8. HDU 2476 String painter (区间DP)

    题意:给出两个串a和b,一次只能将一个区间刷一次,问最少几次能让a=b 思路:首先考虑最坏的情况,就是先将一个空白字符串刷成b需要的次数,直接区间DP[i][j]表示i到j的最小次数. 再考虑把a变成 ...

  9. hdu 4597 + uva 10891(一类区间dp)

    题目链接:http://vjudge.net/problem/viewProblem.action?id=19461 思路:一类经典的博弈类区间dp,我们令dp[l][r]表示玩家A从区间[l, r] ...

最新文章

  1. [CSAcademy]A-Game
  2. [云炬python3玩转机器学习] 5-9 scikit-learn中的回归问题
  3. python区域增长_Python – 有效地为高密度区域创建密度图,稀疏区域的点
  4. 隐藏了十年的Sudo漏洞爆出:无需密码就能获取root权限
  5. Android安全机制(2) Android Permission权限控制机制
  6. java spring 单例模式,spring中的单例模式
  7. Redis如何实现刷抖音不重复-布隆过滤器(Bloom Filter)
  8. garageband 淡出_为什么史蒂夫·乔布斯(Steve Jobs)的GarageBand展示了有史以来最好的现场产品演示...
  9. python文件管不了_Python文件_管道与模块编写
  10. http://blog.csdn.net/jiazimo/article/details/17265061
  11. C#:根据特定分隔符分割字符串
  12. CentOS6.5下lv调整空间大小
  13. FTP 连接超时解决办法
  14. 从架构到平台, POWER 9处理器最全解读
  15. #ardiuno #蓝牙 #if函数判断 #串口中米思齐
  16. Reflector反编译.NET文件后修复
  17. MT6737/MT6737T/MT6737M处理器功能介绍,MT6737芯片资料下载
  18. LED发光二极管限流电阻的计算
  19. 你不知道的东西----半月痕(中医诊断)
  20. Face Paper: DSSD论文详解

热门文章

  1. AtCoder Beginner Contest 242——1111gal password
  2. 410款INTEL CPU详细技术资料速查表
  3. python非线性最小二乘拟合_非线性函数的最小二乘拟合——兼论Jupyter notebook中使用公式 [原创]...
  4. html5编写微信留言,HTML5春节(支持微信和填写姓名)祝福所有程序员幸福快乐...
  5. 最好玩的steam游戏例举,看看都有那些?
  6. 积累小结-无法将文件”obj\debug\XXX.dll复制到“bin\Debug\XXX.dll” 拒绝访问
  7. 中链云&神算云 全球发布暨表彰盛典在深顺利召开
  8. JetPack Room数据库组件使用方式
  9. 实现网上购物系统的后台管理(增、删、改、查图书)。
  10. 大学两年时间的一些感悟