挖地雷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版本的升级版本,该产品现已开源并 ...
随机推荐
- 【树形dp】Farmcraft
题目 In a village called Byteville, there are houses connected with N-1 roads. For each pair of houses ...
- Zuul请求超时
最近在弄springcloud的时候发现在发送短信的时候zuul总是报错,错误信息如下 com.netflix.zuul.exception.ZuulException: at org.springf ...
- 再探JVM内存模型
以前学JVM的时候看过<深入理解JVM>,当时看的很模糊也记了些笔记,更像是为了应付面试.事实是确实把笔记都背上了,春招找实习的时候,内存管理.类加载.垃圾回收三连背一遍.后来自己做项目的 ...
- vs2013, EF6.0.0.0 使用Migrations来更新数据库时报错
1.vs中,程序包管理器控制台 2.执行,Enable-Migrations 报错: Migrations have already been enabled in project 'dd'. To ...
- 第 11 篇:基于 drf-haystack 的文章搜索接口
作者:HelloGitHub-追梦人物 在 django 博客教程中,我们使用了 django-haystack 和 Elasticsearch 进行文章内容的搜索.django-haystack 默 ...
- 如何基于 echarts 实现区间柱状图(包括横向)?
目录 需求 借鉴 echarts 的 demo 最终实现思路 实现效果 遇到的问题: 代码映射 源码 最后 始终如一 需求 需要利用 echarts 实现区间柱状图,效果如下: 效果来源于:g2-柱状 ...
- 线下---复习day01
目录 1 个人介绍 2 关于编辑器 3 基础串讲 3.1 解释型和编译型 3.2 数据类型 3.2.1 一切皆对象 3.2.1 深浅copy 3.2.3 可变类型与不可变类型 3.3 字符编码 3.4 ...
- Mysql 实例:mysql语句练习50题(普通sql写法)
为了练习sql语句,在网上找了一些题,自己做了一遍,收益颇多.很多地方换一种思路,有更好的写法,欢迎指正. 题目地址:https://blog.csdn.net/fashion2014/article ...
- 机器学习实战基础(三十五):随机森林 (二)之 RandomForestClassifier 之重要参数
RandomForestClassifier class sklearn.ensemble.RandomForestClassifier (n_estimators=’10’, criterion=’g ...
- Django框架11 /form组件、modelForm组件
Django框架11 /form组件.modelForm组件 目录 Django框架11 /form组件.modelForm组件 1. form组件介绍 2. form常用字段与插件 3. form所 ...