挖地雷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版本的升级版本,该产品现已开源并 ...
随机推荐
- python server端并发聊天
---------------------------server.py---------------------import socketserver class MyServer(socketse ...
- web前端开发入门全套学习方法路径,兼职在家做网站也能月入上万!
前端学习路径 1.WEB前端快速入门 在本阶段,我们需要掌握 HTML 与 CSS 基础,当然,也包含 H5 和 C3 的新特性.这个部分内容非常简单,而且非常容易掌握.相信你也更愿意学习这个部分,毕 ...
- LINUX 下 一些常用的信息显示命令:
tcsh——shell程序,它可以在登录shell和shell 脚本命令处理器之间做命令语言解释器.stat——显示指定文件的相关信息who.w——显示在线登陆用户whoami——显示用户自己的身份h ...
- 《The Design of a Practical System for Fault-Tolerant Virtual Machines》论文总结
VM-FT 论文总结 说明:本文为论文 <The Design of a Practical System for Fault-Tolerant Virtual Machines> 的个人 ...
- css中line-height的理解_介绍line-height实际应用
一.line-height的定义 css中line-height行高是指文本行基线之间的距离,不同字体,基线位置不同.line-height只影响行内元素和其他行内内容,而不会直接影响块级元素,如果块 ...
- 线性dp打鼹鼠
题目大意 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个 的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气.你可 ...
- 洛谷P3237 米特运输
题目链接 题意: 中文题,挺好理解.就是让节点的权值等于各子节点权值之和,然后每个子节点的权值相等,原本每个点有一个权值,通过最少次的修改(可以修改成小数)使其满足要求. 分析: 题意一旦读明白,题什 ...
- Mac OS下安装mysqlclient遇到的一些坑
在玩django的同时,必须需要mysqlclient和pillow包,想在本地Mac上装上mysqlclient,但着实遇到不少坑,最终还是在github issue中找到了解决方法,这里记录一下, ...
- MySQL后记
MySQL后记 这篇博客的目的是记录一些容易被忽略的MySQL的知识点,以及部分pymysql模块的注意点. MySQL中的DDL与DML DDL:数据定义语言(Data Definition Lan ...
- easyUI时间控件
##=============================JSP======================================<div class="labelw l ...