Illyasviel的图游戏

除了1号点和n号点每个点度数小于等于2,因此1 到 n 的所有简单路径互不相交

在结束游戏前的最后一步一定是剩下一条 1 到 n 的路径,并且路径上的权值全都是1

游戏总步数确定,如果剩下的最后一条路径确定了,先后手的胜负就确定了。

那么双方的策略就使尽可能使最后留下的路径是使自己必胜的路径,即尽可能切断使对方必胜的路径。

如果先手Alice想赢:

  1. 初始时图中所有边的边权和为奇数:那么他一定要使剩下的最后一条路径有偶数条边(是边数,不是边权和),即他要在Bob把有偶数条边的路径拆完前把有奇数条边的路径拆完;
  2. 初始时图中所有边的边权和为偶数:那么他一定要使剩下的最后一条路径有奇数条边(是边数,不是边权和),即他要在Bob把有奇数条边的路径拆完前把有偶数条边的路径拆完;

切断一条路径需要的步数是这条路径上的权值的最小值。我们只需要比较双方切断对方必胜的路径所需要的步数即可。

#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
const int N=1e5+10;
const int M=150000;
const ll inf=1e9+7;
struct Edge{int v,w,nxt;
}edge[M<<1];
int cnt,head[N],n,m;
ll sum,st[2];//st[0/1]:拆完有偶数/奇数条边的路径所需步数
void add(int u,int v,int w){edge[++cnt].v=v;edge[cnt].w=w;edge[cnt].nxt=head[u];head[u]=cnt;
}
void dfs(int u,int fa,ll minn,bool type){//type=0:路径有偶数条边,type=1:路径有奇数条边 if(u==n){st[type]+=minn;return;}for(int i=head[u];i;i=edge[i].nxt){int v=edge[i].v;if(v==fa) continue;dfs(v,u,min(minn,1ll*edge[i].w),type^1);}
}
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int u,v,w;scanf("%d%d%d",&u,&v,&w);add(u,v,w);add(v,u,w);sum+=1ll*w;}dfs(1,0,inf,0);if(sum&1){if(st[0]>=st[1]) printf("Yes\n");else printf("No\n");}else{if(st[0]<=st[1]) printf("Yes\n");else printf("No\n");}return 0;
}

[XSY]Illyasviel的图游戏(博弈论)相关推荐

  1. [AcWing] 1319.移棋子游戏 博弈论 Sg函数板子题

    题目链接:1319.移棋子游戏 题解 好久没写博弈论的题了,写几道复习一下,博弈论SG主要由两大部分组成:SG函数和SG定理 SG(x)=mex(S),其中S是x的后继状态的SG函数值集合,mex(S ...

  2. matlab数字填图游戏,数字填色游戏下载-数字填色游戏安卓版下载(Paint By Number) v1.7.3-11773手游网...

    数字填色游戏是一款非常简单的放松玩法,游戏屏幕上将会给玩家显示出不同的图形:玩家按照不同的数字进行上色就可以.在玩游戏的同时可以培养玩家的色彩搭配意识,这里收集了多种多样的外形图案等你来完成. 数字填 ...

  3. 雪碧图 游戏开发_Android游戏开发–雪碧动画

    雪碧图 游戏开发 如果到目前为止您仍然关注该系列 ,我们将在处理触摸,显示图像和移动它们方面广为人知. 但是,动态图像看起来很呆板,因为它看起来确实是假的和业余的. 为了给角色一些生活,我们将需要做更 ...

  4. 基于C++与QT仿照羊了个羊规则的鸿了个鸿贴图游戏

    目录 1.游戏效果展示 2.游戏介绍 3.游戏核心思路 3.1游戏理念 3.2游戏思路 4.游戏核心模块实现 4.1设置背景和卡片图片 4.2画卡片 4.2.1画第一层图片 4.2.2画第二层图片 4 ...

  5. 小学生python游戏编程4----拼图游戏

    小学生python游戏编程4----拼图游戏 主要设计 应用知识点 1.python知识点 1.1 函数定义与使用 1.2 random 2.pygamezero知识点 2.1 基本框架,取上节中讲到 ...

  6. 7和7的倍数游戏答案_趣味数阵图游戏

    趣味数阵图游戏丨告诉孩子思考方式比答案更重要 点击上方蓝字,关注我们 " 数阵图是非常好的思维训练工具, 既能锻炼孩子对数字的敏感性, 又包含一定的方法和技巧. 数阵图的核心方法是根据线和与 ...

  7. 牛客网CSP-S提高组赛前集训营1题解(仓鼠的石子游戏 [博弈论] + 乃爱与城市的拥挤程度 [树上DP] + 小w的魔术扑克[dfs + 离线])

    文章目录 T1:仓鼠的石子游戏 题目 题解 代码实现 T2:乃爱与城市拥挤程度 题目 题解 代码实现 T3:小w的魔术扑克 题目 题解 代码实现 T1:仓鼠的石子游戏 题目 仓鼠和兔子被禁止玩电脑,无 ...

  8. BZOJ 1022 Luogu P4279 [SHOI2008]小约翰的游戏 (博弈论)

    题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=1022 (luogu) https://www.luogu.org/pro ...

  9. 蓝桥杯 填字母游戏(博弈论)

    小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了". K大师在纸上画了一行n个格子,要小明和他交替 ...

最新文章

  1. 记事本 换行符_Windows 记事本再度上架 Microsoft Store
  2. 序列化的高阶认识-绕开 transient 机制的办法
  3. 小程序 mathjs渲染公式_Mac 3D渲染和动画制作----KeyShot 9 Pro
  4. 华为媒体服务器在哪个文件夹,plex媒体服务器地址
  5. 成功EDM电子邮件营销的要素和目标分析
  6. jQuery:实现显示更多动画
  7. 【限时福利】COACKA免费试听@Days China,干货在这里!
  8. javascript创建表格
  9. 摄影知识——光圈和快门的组合
  10. HTML学生个人网站作业设计:动漫网站设计——梦幻西游(15页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  11. monkey命令——压力测试——转载参考01
  12. 6大智慧电厂关键技术,三维可视化仅是基础
  13. 【docker详解02】-docker安装
  14. 带K线的macd选股指标详解 优化MACD王牌指标 通达信macd选股指标源码
  15. 新手lbw + 《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006
  16. hotspot解释器和JIT
  17. LiveData 的基本使用
  18. 360全景摄影的逆光问题如何解决?
  19. 怎么把两个表格的内容合并
  20. 九部比《五十度灰》更血脉喷张的电影,个个看完都会让人欲罢不能!

热门文章

  1. python中valueerror怎么改_如何修复Python ValueError:错误的元数据?
  2. 后端学习 - SpringMVC
  3. leetcode144. 二叉树的前序遍历(递归+迭代)
  4. 4位BCD计数器设计
  5. Invitation Cards POJ - 1511 SPFA(dijkstra+反向建图+邻接表(下标过大)+输入输出用stdio(iostream超时))
  6. php抓取多个网页合并,PHP 使用 CURL 同步抓取多个网页
  7. mysql技术分享-- 视图是什么
  8. 数据结构与算法--二叉树实现原理
  9. autowired用在static_java – @Autowired和static方法
  10. Hibernate基础