题目描述

Caima王国中有一个奇怪的监狱,这个监狱一共有P个牢房,这些牢房一字排开,第i个紧挨着第i+1个(最后一个除外)。现在正好牢房是满的。

上级下发了一个释放名单,要求每天释放名单上的一个人。这可把看守们吓得不轻,因为看守们知道,现在牢房中的P个人,可以相互之间传话。如果某个人离开了,那么原来和这个人能说上话的人,都会很气愤,导致他们那天会一直大吼大叫,搞得看守很头疼。如果给这些要发火的人吃上肉,他们就会安静点。

输入输出格式

输入格式:

第一行两个数P和Q,Q表示释放名单上的人数;

第二行Q个数,表示要释放哪些人。

【数据规模】

对于100%的数据1≤P≤1000; 1≤Q≤100;Q≤P;且50%的数据 1≤P≤100;1≤Q≤5

输出格式:

仅一行,表示最少要给多少人次送肉吃。

输入输出样例

输入样例#1:

20 3
3 6 14

输出样例#1:

35

【样例说明】

先释放14号监狱中的罪犯,要给1到13号监狱和15到20号监狱中的19人送肉吃;再释放6号监狱中的罪犯,要给1到5号监狱和7到13号监狱中的12人送肉吃;最后释放3号监狱中的罪犯,要给1到2号监狱和4到5号监狱中的4人送肉吃。

思路:

设 f[i][j] 为区间释放 i~j 号囚犯所需最少的肉,枚举所有分界点 k,则:f[i][j]=min{f[i][j],f[i][k-1]+f[k+1][j]+a[j+1]-a[i-1]-1-1}

a[j+1]-a[i-1]-1 是第 j+1 个要放出的囚犯到第 i-1 个要放出的囚犯之间的人数,也即要发的肉的数量

最后一个 -1 ,就是第 k 个放出去的囚犯,不用再给他发肉了

源代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<set>
#include<map>
#include<stack>
#include<ctime>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 10001
#define MOD 1e9+7
#define E 1e-6
#define LL long long
using namespace std;
int a[N];
int f[N][N];
int main()
{int p,q;cin>>p>>q;for(int i=1;i<=q;i++)cin>>a[i];a[0]=0;a[q+1]=p+1;sort(a+1,a+q+1);for(int len=1;len<=q;len++)//枚举区间长度{for(int i=1;i+len-1<=q;i++)//枚举所有起点{int j=i+len-1;//终点位置f[i][j]=INF;for(int k=i;k<=j;k++)//枚举所有间断点f[i][j]=min(f[i][j],f[i][k-1]+f[k+1][j]+a[j+1]-a[i-1]-1-1);}}cout<<f[1][q]<<endl;return 0;
}

释放囚犯(洛谷-P1622)相关推荐

  1. P1622 释放囚犯题解

    前言:这是本蒟蒻第一次提交动态规划的题解,大佬勿喷. 这道题是道区间DP的好题啊!首先,我想到的是 f i , j f_{i,j} fi,j​ 来表示释放第 i i i 到第 j j j 个犯人要给的 ...

  2. 深入理解 操作系统 SJF算法(以洛谷P1223题为例)

    CPU Scheduling Algorithms 重要的CPU调度算法如下: FCFS Scheduling(First-Come, First-Served) SJF Scheduling(Sho ...

  3. 洛谷P2240木材加工

    题目链接 洛谷P2240 题目描述 木材厂有 n根原木,现在想把这些木头切割成 k 段长度为l的小段木头(木头有可能有剩余). 当然,我们希望得到的小段木头越长越好,请求出 l的最大值. 木头长度的单 ...

  4. rail铁轨 洛谷 测试数据_你见过什么生成 OI 比赛测试数据的工具?

    问者自答: CarYon:一款基于C++的OI/ACM 比赛测试数据生成器 前言 这是干什么用的? 在举办自己的OI比赛的时候,你有没有遇到过以下问题想快速生成一段文字? 想快速进行数学运算来生成数据 ...

  5. 洛谷大起义胜利的经验总结

    UPD1(2019.7.11):chen_zhe解除了对我的禁言,但仍保持大脑皮层对刷题重心转到LibreOJ的决策,50年不变. 2019-07-09 9:54 结束黑暗无光的\(luogu\)统治 ...

  6. 洛谷 P3802 小魔女帕琪【期望】

    洛谷 P3802 小魔女帕琪[期望] 本题大意:共有7个数(1234567)第i个数有ai个,把所有sum(a1+a2+..+a7)个数随机出现时,求连续成功出现7个不同数字的期望次数, 分析:(分为 ...

  7. 洛谷 P7453 [THUSCH2017] 大魔法师

    PS:如果读过题了可以跳过题目描述直接到题解部分 提交链接:洛谷 P7453 [THUSCH2017] 大魔法师 题目 题目描述 大魔法师小 L 制作了 n n n 个魔力水晶球,每个水晶球有水.火. ...

  8. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  9. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

最新文章

  1. 《关系营销2.0——社交网络时代的营销之道》一T表示Technology(技术)
  2. ELK5.3环境部署
  3. oracle数据库视图存放位置,oracle数据库审计
  4. wojilu系统的ORM介绍
  5. mui HTML5 plus 下载文件
  6. Spring Security OAuth2 授权失败(401)
  7. mysql存入中文乱码解决方法(windows环境)
  8. 2022年定位系泊系统市场深度分析及发展研究预测报告
  9. nexus下载安装和创建maven私库
  10. Android下载文件常见错误解决方法
  11. 增长模型—评分卡模型
  12. 微信商户转账到银行卡-java_微信商户平台的钱如何转到个人账户中
  13. C++ OpenCV 将黑点框出来
  14. 【集合论】关系表示 ( 关系矩阵 | 关系矩阵示例 | 关系矩阵性质 | 关系矩阵运算 | 关系图 | 关系图示例 | 关系表示相关性质 )
  15. java出现令牌语法错误_java – 令牌上的语法错误
  16. cocos2dx 3.9.1 mac模拟器log输出bug修正
  17. html鼠标滚轮监听,javascript监听鼠标滚轮事件浅析
  18. 扫描仪产品国家抽检实施细则及信息技术类产品检测设备
  19. 4800u功耗测试软件,ryzen controller---移动端锐龙处理器解锁功耗工具(附使用方法)...
  20. matlab stats里的f值,MATLAB 回归分析regress,nlinfit,stepwise函数

热门文章

  1. 5个步骤带你入门FPGA设计流程
  2. LwIP之ICMP协议
  3. IntelliJ IDEA竟然出了可以在云端编码的功能?
  4. ArrayList和LinkedList使用不当,性能差距会如此之大!
  5. 你真的确定Spring AOP的执行顺序吗
  6. 不小心执行了 rm -rf,除了跑路还有其他办法吗?
  7. 九个Console命令,让 JS 调试更简单
  8. ueditor1_4_3-utf8-jsp 配置实现上传图片的功能
  9. Django(三)模板
  10. 小目标三、存储数据的表结构