【来源】:

2008年哈尔滨区域赛题目

【题目链接】:

http://acm.hdu.edu.cn/showproblem.php?pid=2452

【参考博客】:

https://blog.csdn.net/watermuch/article/details/9465185

【题意】:

真的要好好检讨,英语不好,这个题就别想做了。

意译一波,就是船是有两位领导  进行领航,一位叫做V,另一位叫G。

给出一幅有向无环图,每一个节点都有一个权值,如果经过这个节点都会获得对应的权值。

从一个入度为0的节点开始,到某个出度为0的节点停止。

但是两个人的想法不同:

V想要权值和尽可能大,G想要权值和尽可能小。

最后问,给出一个F,如果在一波操作之后获得的权值和大于等于F则”V胜利“,否则就”G荣誉“。


【题解】:

在图上跑DAG最长路,边记录对应的dp值,边跑,如果当前领航的人是谁,就分别写出对应的走法。

一定需要记忆化搜索,主要是因为多个起点,记忆化尽可能减少复杂度。


【代码】:

 #include<bits/stdc++.h>
using namespace std;
const int N = 1e4+; vector<int>G[N];
int dp[N][],w[N],du[N];
int n,m,f; /*
多组输入,记住要清空
*/
void Init(){
for(int i=;i<=n;i++){
du[i] = dp[i][] = dp[i][] = ;
G[i].clear();
}
}
/*
DAG记忆化搜索
dp[i][1/0]
对于第i个节点来说:
[1]——V在领航,他想要权值最大化。
[0]——G在领航,他想要权值最小化。 */ int dfs(int u,int cur){ cur %= ;
if( dp[u][cur] ) return dp[u][cur]; int Size = G[u].size() ;
if( Size == ) return w[u] ; int maxz = - , minz = 0x3f3f3f3f;
for(int i=;i<Size;i++){
int to = G[u][i];
/*
请注意V,G交替领航,当前位置来说,下一个点是最大化还是最小化、
1——Max
0——Min
*/
if( cur ){
maxz = max( maxz , dfs(to,cur+) ) ;
}else{
minz = min( minz , dfs(to,cur+) ) ;
}
} /*
但是过程中的节点的权值都会被记录并返回到上面的for里面。 */
if( cur ) return dp[u][cur] = maxz + w[u] ;
else return dp[u][cur] = minz + w[u] ;
}
int main()
{
while(~scanf("%d%d%d",&n,&m,&f)){
Init();
for(int i=;i<=n;i++) scanf("%d",&w[i]);
for(int i=,u,v;i<=m;i++){
scanf("%d%d",&u,&v);
G[u].push_back(v);
du[v] ++ ;
}
/*
∵V先手领航
∴他的目标就是让自己的值最大化,使其大于等于f.
*/
int maxz = - ;
for(int i=;i<=n;i++){
//题目要求要从入度为0的节点开始.
if( !du[i] ){
maxz = max( maxz , dfs(i,) ) ;
}
}
if( maxz >= f ) puts("Victory");
else puts("Glory");
}
return ;
}

【记忆化搜索】Navy maneuvers的更多相关文章

  1. HDU2452 Navy maneuvers 记忆化搜索

    这题目意思能忍?读了半年,乱七八糟的 记忆化搜索 拖拖的,dp[i][0]代表以获得最小值为目标的船以i为起点.dp[i][1]代表以获得最大值为目标的船以i为起点.接下来暴力枚举入度为0的点为起点, ...

  2. [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索

    1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...

  3. 【BZOJ-3895】取石子 记忆化搜索 + 博弈

    3895: 取石子 Time Limit: 1 Sec  Memory Limit: 512 MBSubmit: 263  Solved: 127[Submit][Status][Discuss] D ...

  4. hdu3555 Bomb (记忆化搜索 数位DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  5. zoj 3644(dp + 记忆化搜索)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 思路:dp[i][j]表示当前节点在i,分数为j的路径条数,从 ...

  6. loj 1044(dp+记忆化搜索)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26764 思路:dp[pos]表示0-pos这段字符串最少分割的回文 ...

  7. DP(记忆化搜索) + AC自动机 LA 4126 Password Suspects

    题目传送门 题意:训练指南P250 分析:DFS记忆化搜索,范围或者说是图是已知的字串构成的自动机图,那么用 | (1 << i)表示包含第i个字串,如果长度为len,且st == (1 ...

  8. HDU1978 记忆化搜索

    How many ways Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  9. bzoj4562: [Haoi2016]食物链--记忆化搜索

    这道题其实比较水,半个小时AC= =对于我这样的渣渣来说真是极大的鼓舞 题目大意:给出一个有向图,求入度为0的点到出度为0的点一共有多少条路 从入读为零的点进行记忆化搜索,搜到出度为零的点返回1 所有 ...

随机推荐

  1. Python 串口通讯

    摘要: pyserial module: https://github.com/tbusf/pyserial Python使用pyserial进行串口通信:http://blog.csdn.net/l ...

  2. No hash for parcel CDH-XXX.parcel.torrent

    在安装 CDH 时,到 Install Parcels 这一步,分发 Parcels 一直过不去,界面一直报 Failure due to stall on seeded torrent,查看日志一直 ...

  3. Elasticsearch 部署以及报错解决

    前言 Elasticsearch 是一个非常值得学习和使用的分布式存储 此次部署将采用 centos6.9 一.初步了解 ES 简谈概念 Elasticsearch 是一个开源的高扩展的分布式全文检索 ...

  4. tkinter入门-按钮的基本属性

    1.  尺寸的大小  ipadx 和 ipady import tkinter root = tkinter.Tk() root.minsize(500, 500) # 基本属性 # 按钮组件 # 绝 ...

  5. 映射器Mapping

    1)  org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping(核心) 将程序员定义的Action所对应的<bean& ...

  6. 部署k8s时容器中ping不通

    192.168.42.120 | UNREACHABLE! => {    "changed": false,     "msg": "Fail ...

  7. 关于XMind软件文件格式的一些思考

    1,安装XMind软件,看见可以导入Markdown文件 2,因此新建了测试.md文件,代码格式为左图,显示效果为右图. 3,导入到XMind中显示为下图 4,也就是XMind中子标题对应着Markd ...

  8. k8s 网络模型解析之实践

    一. 实践说明 首先我们先创建一组资源,包括一个deployment和一个service apiVersion: apps/v1 kind: Deployment metadata: name: ng ...

  9. HTML5 DOM 新增数据类型

    HTML5 DOM 新增数据类型 前言 相对于HTML4当中的DOM,在HTML5中的DOM,新增了很多复杂数据类型,为实际的应用提供了便捷的操作. 在HTML5 DOM中,新增了如下的内容: HTM ...

  10. k8s 1.15.2 部署

    目录 一.环境准备 二.软件安装 三.部署master节点 四.部署node节点 五.集群状态检测 一.环境准备 IP地址 节点角色 CPU Memory Hostname Docker versio ...