Codeforces Round #459 (Div. 2):D. MADMAX(记忆化搜索+博弈论)
题意
在一个有向无环图上,两个人分别从一个点出发,两人轮流从当前点沿着某条边移动,要求经过的边权不小于上一轮对方经过的边权(ASCII码),如果一方不能移动,则判负。两人都采取最优策略,求两人分别从每个点出发的胜负关系表。
分析
记忆化搜索。
f[x][y][v]表示现在两人分别在x,y,上一轮经过的边权为v时x是否能胜利(胜利为1,失败为0)。
考虑如何转移:
对于一条从x到u的边权为val的边,如果val>=v,则可以走这条边,算出f[y][u][val],
如果f[y][u][val]为0,则说明在 f[x][y][v]这个状态下,有使得x胜利的方案,因为两个玩家都采取最优策略,这时x必定获胜。f[x][y][v]=1
如果f[y][u][val]为1,不要紧,主动权现在在处于x点的玩家手中,他可以不从这条路走,继续考察下一条x的出边。
如果无论如何处于x的玩家都赢不了,那么f[x][y][v]=0。
巧妙地博弈
代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n,m;
int u,v;
char s[4];
int dp[101][101][30];//dp[u][v][x]当前两人在u,v且上一轮边权为x时u的胜负
vector<pair<int,int> >mp[101];
int dfs(int u,int v,int x)
{
	if(~dp[u][v][x]) return dp[u][v][x];
	dp[u][v][x]=0;
	int sz=mp[u].size();
	for(int i=0;i<sz;++i)
	{
		pair<int,int>tmp=mp[u][i];
		if(tmp.second>=x&&(!dfs(v,tmp.first,tmp.second))) {dp[u][v][x]=1;break;}
	}
	return dp[u][v][x];
}
int main(int argc, char const *argv[])
{
	scanf("%d %d",&n,&m);
	for(int i=1;i<=m;++i)
	{
		scanf("%d %d %s",&u,&v,s);
		mp[u].push_back(make_pair(v,s[0]-'a'));
	}
	memset(dp,-1,sizeof(dp));
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j)
			if(dfs(i,j,0)) putchar('A');
				else putchar('B');
		puts("");
	}
	return 0;
}
												
											Codeforces Round #459 (Div. 2):D. MADMAX(记忆化搜索+博弈论)的更多相关文章
- Codeforces Round #336 (Div. 2) D. Zuma 记忆化搜索
		
D. Zuma 题目连接: http://www.codeforces.com/contest/608/problem/D Description Genos recently installed t ...
 - Codeforces Round #406 (Div. 1) A. Berzerk 记忆化搜索
		
A. Berzerk 题目连接: http://codeforces.com/contest/786/problem/A Description Rick and Morty are playing ...
 - Codeforces Round #554 (Div. 2) D 贪心 + 记忆化搜索
		
https://codeforces.com/contest/1152/problem/D 题意 给你一个n代表合法括号序列的长度一半,一颗有所有合法括号序列构成的字典树上,选择最大的边集,边集的边没 ...
 - Codeforces Round #459 (Div. 2) D. MADMAX  DFS+博弈
		
D. MADMAX time limit per test 1 second memory limit per test 256 megabytes input standard input outp ...
 - Codeforces Round #459 (Div. 2):D. MADMAX(记忆化搜索+博弈论)
		
D. MADMAX time limit per test1 second memory limit per test256 megabytes Problem Description As we a ...
 - Codeforces Round #459 (Div. 2)
		
A. Eleven time limit per test 1 second memory limit per test 256 megabytes input standard input outp ...
 - codeforces 793 D. Presents in Bankopolis(记忆化搜索)
		
题目链接:http://codeforces.com/contest/793/problem/D 题意:给出n个点m条边选择k个点,要求k个点是联通的而且不成环,而且选的边不能包含选过的边不能包含以前 ...
 - 牛客假日团队赛5 F	随机数  BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 (dfs记忆化搜索的数位DP)
		
链接:https://ac.nowcoder.com/acm/contest/984/F 来源:牛客网 随机数 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...
 - Codeforces Gym 191033 E. Explosion Exploit (记忆化搜索+状压)
		
E. Explosion Exploit time limit per test 2.0 s memory limit per test 256 MB input standard input out ...
 
随机推荐
- 20145239杜文超 《Java程序设计》第10周学习总结
			
20145239 <Java程序设计>第10周学习总结 教材学习内容总结 Java的网络编程 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. 网络概述 1.计算机 ...
 - RK平台images打包细则【转】
			
本文转载自;https://blog.csdn.net/wangxueming/article/details/52808739 IMGs打包细节 平台: RK3288 背景: RK3288编译产生了 ...
 - 在PyCharm上创建Django项目
			
声明:此Django分类下的教程是追梦人物所有,地址http://www.jianshu.com/u/f0c09f959299,本人写在此只是为了巩固复习使用 首先我们在Pycharm上新建一个Dja ...
 - vs2015professional过期后登录微软账户仍然不能使用的解决方法
			
今天安装了vs2015pro版,找到了一个可以正常使用的密钥 2015 pro(专业版)key:HMGNV-WCYXV-X7G9W-YCX63-B98R2 注意是专业版,非企业版 来源:https:/ ...
 - 分享知识-快乐自己:Struts2(动态方法、动态结果、通配符、方法内部跳转、action跳转、OGNL 的使用及注意事项)
			
这里主要以案例演示:涵盖以下知识点 1.动态方法调用:使用关键 符号 ! 进行操作 例如:/命名空间 ! 方法名 2.动态结果集:就是说,通过后台返回的结果 ${} 获取,重定向到符合预期的页面. ...
 - rust borrow and move
			
extern crate core; #[deriving(Show)] struct Foo { f : Box<int> } fn main(){ let mut a = Foo {f ...
 - next enum in swift
			
enum Iter: Int{ case s1=0, s2, s3, s4 mutating func next(){ if self == .s4 { self = .s1 return } sel ...
 - 天池历届大赛答辩PPT及视频
			
1.阿里移动推荐算法: 答辩视频:https://space.dingtalk.com/c/gQHOEnXdXw 2.资金流入流出预测: 答辩视频:https://space.dingtalk.com ...
 - 【LeetCode】Find Minimum in Rotated Sorted Array 在旋转数组中找最小数
			
Add Date 2014-10-15 Find Minimum in Rotated Sorted Array Suppose a sorted array is rotated at some p ...
 - python打印字体颜色
			
格式:\033[显示方式;前景色;背景色m 显示方式 意义-------------------------0 终端默认设置1 ...