挖地雷dp c++
//
// Created by Arc on 2020/4/27.
// /*题文:
* 在一个地图上有n个地窖
* ,每个地窖中没有一定数量的地雷,
* 同时给出地窖之间连接的路径,
* 并规定路径都是单向的。
* 且保证都是小序号地窖指向大序号地窖,
* 也不存在可以从一个地窖出发,经过若干后又回到原来地窖的路径
* 某人可以从任意一处开始挖地雷,然后沿着指出的路径往下挖,只能选择一条路径,当没有连接时,挖地雷工作结束设计,一个挖地雷的方案使他能挖到最多的地雷
* 输入:
* 第一行为坑总数
* 第二行为每个坑的地雷数
* 接下来的几行是都有哪两个坑可以连接,
* 输入0 0 表示结束
* 输出:
* 最大地雷数以及路径
* (一看见这种路径,是不是直接想到一个数组存放地址啊) */
//思路:
//我们知道dp有个无后效性原则
//你看看上面题目:
//规定路径都是单向的。
//* 且保证都是小序号地窖指向大序号地窖,
//* 也不存在可以从一个地窖出发,经过若干后又回到原来地窖的路径
//--很明显了啊
//
//
/*存放变量:
* 和前面的dp几乎一样,也是从倒数第二个逆推
* w[i]是指每个坑有几个地雷
* a[i][j]是指i,j之间是否有通路//和城市交通线不同,这个地方不是没有通路就为0,所以输入方式也不太一样
* f[i]表示i往后的最多能挖到多少
* c[i]是个存放位置的.
*/
#include<bits/stdc++.h>
using namespace std;
int main(){
long f[]={},w[]={},c[];
bool a[][]={};
long n;
long x,y;
memset(a,false,sizeof(a));
cin>>n;
for (int i = ; i <=n ; ++i) {//每个坑的地雷数
cin>>w[i]; }
do{
cin>>x>>y;
if((x!=)&&(y!=)){
a[x][y]=true;
} }while((x!=)||(y!=));
f[n]=w[n];//初始值
for (int j = n-; j >= ; j--) {
int l=;
for (int i = j+; i <=n ; ++i) {
if(a[j][i] && (l<f[i])){
l=f[i];
c[j]=i;
} }
f[j]=l+w[j];//本次最长等于本坑地雷数加后面的 }
int k=;
for (int m = ; m <= n; ++m) {
if(f[m]>f[k])
{
k=m;
}
}
cout<<f[k]<<endl;
cout<<k;
k=c[k];
while(k!=){
cout<<"-"<<k;
k=c[k]; }
return ; }
挖地雷dp c++的更多相关文章
- 洛谷P2196 挖地雷(dp)
题意 题目链接 Sol 早年NOIP的题锅好多啊.. 这题连有向边还是无向边都没说(害的我wa了一遍) 直接\(f[i]\)表示到第\(i\)个点的贡献 转移的时候枚举从哪个点转移而来 然后我就用一个 ...
- 开始奇妙的DP之旅
铭记各位大佬教导,开始看一些很迷的动态规划,那就从比较典型的01背包开始吧,想想还是从比较简单的导弹拦截开始吧,说简单都是骗人的,还是看采药吧. 一.动态规划 刚听到动态规划这个东西,据HLT大佬所言 ...
- [LUOGU] P2196 挖地雷
题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任一处 ...
- noip1998 提高组t3 挖地雷
题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任一处 ...
- 6.22 集训--DP复习一
总结 下午的突击练习完全不在状态 A.拦截导弹简单版 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发 ...
- BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
1911: [Apio2010]特别行动队 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 4142 Solved: 1964[Submit][Statu ...
- 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...
- AEAI DP V3.7.0 发布,开源综合应用开发平台
1 升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...
- AEAI DP V3.6.0 升级说明,开源综合应用开发平台
AEAI DP综合应用开发平台是一款扩展开发工具,专门用于开发MIS类的Java Web应用,本次发版的AEAI DP_v3.6.0版本为AEAI DP _v3.5.0版本的升级版本,该产品现已开源并 ...
随机推荐
- Js数据类型、Json格式、Json对象、Json字符串
数据类型,从结构上看,所有的数据最终都可以分成三种类型: 第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词. 第二种类型是se ...
- 栈的顺序存储和链式存储c语言实现
一. 栈 栈的定义:栈是只允许在一端进行插入或删除操作的线性表. 1.栈的顺序存储 栈顶指针:S.top,初始设为-1 栈顶元素:S.data[S.top] 进栈操作:栈不满时,栈顶指针先加1,再到栈 ...
- 51单片机入门(补充)1--与C语言的交接
我写完上一个文章,发现我写的还是不够全面,所以,这篇文章将会延续上一个文章的内容,并且再次补充新的东西,如果还有什么地方需要补充,还请各位一一指出,如果你已经学过这些东西,大可以直接跳过,假如说之后有 ...
- spring配置文件的部分配置文字说明
http://blog.csdn.net/zzjjiandan/article/details/22922847/ spring的组成: <beans> <contenxt> ...
- day42 io模型
目录 一.io模型简介 二.阻塞io阻塞IO模型图.png 三.非阻塞io 四.io多路复用 五.异步io 一.io模型简介 Stevens在文章中一共比较了五种IO Model: blocking ...
- robotframework日志输出中文乱码以及robotframework常用关键字-笔者亲测
一.环境说明 python版本:3.7.3 robotframework版本:3.1 robotframwork-ride版本:1.7.4.2 二.问题描述
- CTFHub_技能树_远程代码执行
RCE远程代码执行 命令分割符: linux: %0a .%0d .; .& .| .&&.|| 分隔符 描述 ; 如果每个命令都被一个分号(:)所分隔,那么命令会连续地执行下 ...
- java 基本语法(十九)Optional类的使用
java.util.Optional类1.理解:为了解决java中的空指针问题而生!Optional<T> 类(java.util.Optional) 是一个容器类,它可以保存类型T的值, ...
- It's time for Django
本节内容 Django流程介绍 Django url Django view Django models Django template Django form Django admin Django ...
- ant-design-vue中实现modal模态框的复用(添加,编辑展示同一个模态框)
用两个button(添加,编辑)按钮展示同一个模态框,并不是什么大问题,问题在于解决这两个模态框得有自己的确定和取消方法 父页面完全接管子页面(利于子页面复用) 父页面代码: <template ...