对于i到j之间我们要去除第k个人。

我们需要i-k之间所有的花费 加上  k-j之间所有的花费  加上 当前需要的花费

前面两部分花费我们dp早就求出了

当前需要的花费 我们是对于当前i到j这一部分,我们看作是i为头,j为尾,都是靠边的了。所以就是j-i+2

#include <iostream>
using namespace std;
int n,m;
int A[110];
int dp[110][110];
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>A[i];
    }
    A[0]=0;
    A[m+1]=n+1;
    for(int i=0;i<=m;i++)
    {
        dp[i][i+1]=0;
    }
    for(int k=2;k<=m+1;k++)//优先间距,因为我们间距越拆越小,先处理小的
    {
        for(int i=0;i+k<=m+1;i++)//出发点
        {
            int j=i+k;
            int tmp=1e9+8;
            for(int u=i+1;u<j;u++)
            {
               tmp=min(tmp,dp[i][u]+dp[u][j]);//找到最小的拆分方式
            }
            dp[i][j]=tmp+A[j]-A[i]-2;//A【j】-A【i】-2,因为假设两边都是到头的
        }
    }
    cout<<dp[0][m+1]<<endl;

}

贿赂囚犯 Bribe the prisoners DP相关推荐

  1. 贿赂囚犯 Bribe the prisoners (动态规划)

    问题描述: Problem In a kingdom there are prison cells (numbered 1 to P) built to form a straight line se ...

  2. 编程题-贿赂囚犯(Bribe the prisoners)-动态规划|剪枝

    转载请注明出处:http://blog.csdn.net/Lizo_Is_Me/article/details/43735509 问题描述: 一个监狱里有P个并排着的牢房,从左往右一次编号为1,2,- ...

  3. 贿赂囚犯 Bribe the prisoners ( 动态规划+剪枝)

    一个监狱里有P个并排着的牢房,从左往右一次编号为1,2,-,P.最初所有牢房里面都住着一个囚犯.现在要释放一些囚犯.如果释放某个牢房里的囚犯,必须要贿赂两边所有的囚犯一个金币,直到监狱的两端或者空牢房 ...

  4. Bribe the Prisoners SPOJ - GCJ1C09C

    滴答滴答---题目链接 贿赂囚犯 Bribe the prisoners ( 动态规划+剪枝) Problem In a kingdom there are prison cells (numbere ...

  5. [区间记忆化dp入门][Bribe the Prisoners SPOJ - GCJ1C09C][Codeforces Round #505D (rated, Div. 1 + Div. 2, ba]

    Bribe the Prisoners SPOJ - GCJ1C09C 作为这类题代表,f[i][j]代表第i点到第j点单独处理的最值 这题关键:释放某个囚犯后,就把囚犯分成两段,两段互相独立 这类d ...

  6. Bribe the Prisoners(GCJ 2009 Round 1C C)(dp)

    题意: 一个监狱里有P个并排着的牢房.从左至右依次编号为1,2,...,P.最初所有的牢房里都住着一个囚犯.相邻的两个牢房之间可以互通信息. 现在要释放一些囚犯.如果释放某个牢房里的囚犯,其相邻的牢房 ...

  7. Bribe the Prisoners 菜鸟的记录

    Bribe the Prisoners 题目大意 有一个监狱里有一排牢房1-P,其中住着一些囚犯.现在要释放一些囚犯Q, 当释放一个囚犯的时候,要给两边所有的囚犯每人一枚金币, 直到遇到空牢房或者尽头 ...

  8. [dp]GCJ 2009 Bribe the Prisoners

    原文 原作者 lizo_is_me 问题描述: 一个监狱里有P个并排着的牢房,从左往右一次编号为1,2,-,P.最初所有牢房里面都住着一个囚犯.现在要释放一些囚犯.如果释放某个牢房里的囚犯,必须要贿赂 ...

  9. 挑战2.7.3 Round 1C 2009 C. Bribe the Prisoners 区间dp

    题目链接: https://code.google.com/codejam/contest/189252/dashboard#s=p2 题意: 题解: 区间dp dp[i][j] 表示释放a[i]~a ...

最新文章

  1. Go 学习笔记(72)— Go 第三方库之 pkg/errors 带堆栈的错误处理
  2. Spring MVC 中急速集成 Shiro 实践
  3. 扭矩大好还是马力大好_发动机的马力重要还是扭矩重要?加速到底看哪个?
  4. 《信息学奥赛一本通》回文数(Noip 1999)
  5. MYSQL的空间查询(转帖)
  6. 花器官身份基因与靶基因间的调控进化情况
  7. 微擎乐慧云智慧农场源码V1.0.1
  8. 【codeforces】【比赛题解】#950 CF Round #469 (Div. 2)
  9. 【一分钟知识】梯度下降与牛顿法对比
  10. 永久删除掉qq安全防护进程q盾
  11. python贴吧顶贴_Python实现百度贴吧自动顶贴机
  12. android eclipse三合一,创新巅峰之作全能型Orbitrap Eclipse三合一质谱仪
  13. 操作系统——进程管理
  14. iOS直播等开源项目地址收藏
  15. 每月一书(202202): 《从零开始做自媒体》
  16. php 解析mpp 格式文件
  17. 高通物联网智能WIFI芯片-QCA4002/QCA4004
  18. 机器人被挠脚心_《fm及机器人系列(tk)》专题
  19. VSTO C# 操作excel
  20. 微信怎么@所有人?必备苹果手机小技巧

热门文章

  1. python的if和else的缩进问题_Python if else对缩进的要求
  2. 几何/极星“出师不利”,极氪“出位”,吉利“急攻”智能电动
  3. 摩尔定律要失效了吗?
  4. Amazon Aurora 故障恢复之降低 DNS 切换对应用影响篇
  5. 学习编程有那么难吗?
  6. cocos2d-x ZIPDecompress函数实现
  7. Java 中Map map = new HashMap()为什么不写成HashMap map = new HashMap()或者Map map = new Map()?
  8. 计算机音乐谱大全强军战歌,《强军战歌,钢琴谱》阎维文(五线谱 钢琴曲 指法)-弹吧|蛐蛐钢琴网...
  9. 什么是POP3、SMTP和IMAP?
  10. 计算机课程期末总结1000字,学期末总结1000字