link

给定一个长度n=2e5的全排列,有AB两个人
第1步: A先选择一个位置a, 然后B再选择一个位置b 'a != b'
第2步: A先移动到[a-1]或[a+1]的位置,B再移动到[b-1]或[b+1]的位置上'任意时刻,AB都不可以重合; ''但: A可以走到<B曾经走过的位置>,B也可以走到<A曾经走过的位置>'
3:  确保,A所走的路径 是'递减的', B所走路径 是'递增的'/ 即,A只能走小的,B只能走大的问: A最开始选择哪些位置时,是必胜的。'比如A最开始选择x位置,那么B最开始只能选择!=x的位置;然后A再开始走'1 2 5 4 3
ans = 1   / 当A最开始选择5时,不管B选择什么位置 B必败博弈论的题目,确实是需要去分析,所以 一定要动手 考虑所有的情况
FOR(i, 1, n, 1){ 枚举A最开始选择的位置下标 }1, [xxx, 7, 5, 4, ...]  A最开始选择5由于A只能往右走 '即只能往一个方向走',此时 B选择4 堵起来那么A,就无法行走。即: 只有A只能有一个方向,必败
2, [xxx, 17, 1, 2, 3, 7, 6, 5, 4, 18, xxx] A最开始选择7max(lef[i],rig[i]) == 3   (lef/rig为,递减的长度)当max为奇数时, B就去选择[1] (max的另一端)I: A往[1]走,那么一人一步 最终是A无法走II:A往另一侧走,那么 A和B都可以走3步,但最终是A走不了
3, max(lef[i], rig[i]) == 偶数[xx,17, 3, 4, 7, 6, 5, 18, xx] A选择7 {lef=rig=2}' 你非常容易会考虑错误!!! '/ 比如: B选择[3] 那么A往左走; B选择[5] A往右走/ 即B在端点 A去找B硬刚; 否则,A走另一侧!!! '总之A必胜'/ 可以发现,此时 B只在这[3,4,7,6,5]中选,B确实是必败的/   '暂时不考虑,B在其他位置选择的情况'/ 对于这个[lef==rig==偶数]的情况,A确实是必胜的/ 你非常可能会认为!!!!: /   当max(lef, rig) == 偶数时,且B只在[xx, {lef}, A, {rig}, xx]中的 [lef和rig]位置考虑时,/       A是必胜的!!!/       错!!!!/   这一点非常难想到... 当lef==rig==偶数时,确实满足/   但当lef!=rig时, 其实B也是可以胜利的比如: [xxx, 17, 1, 2, 3, 4, 9, 8, 7, 6, 18, xx]即lef=4, rig=3;  / 我们知道,B在端点 A去硬刚; 否则A走另一侧/ 所以,B肯定不能在端点!!! 我们让B在'max端点的旁边!!!'/ 即让B初始时,在[2]的位置!!!/ 这样, B一定可以走max() - 1步!!!/ 1, A去硬刚B,肯定是必败。 因为max-1是奇数/ 2, A走另一侧,因为lef!=rig,所以{max-1} >= min意味着,最差是: AB走了相同步数,但A该走了 A必败FOR(i, 0, n-1, 1){bool succ = true;  'succ表示: A是否必胜'if((lef[i] == 0) || (rig[i] == 0)){ succ = false; }else{int ma = max(lef[i], rig[i]);if(ma & 1){ 'B选择max的端点'succ = false;}if(ma > (min(lef[i], rig[i])) ){ '这里是重点!! B选择max端点的旁边'succ = false;}'当然,B还可以选择 不是{lef和rig}的位置''虽然我们的lef和rig存的是: 当前点,往左/右的 <递减>的长度''  V里存的是:{max(lef[i], rig[i]), i} ''  假如V里有(>=ma, x)的   「ma为 max(lef[cur], rig[cur])」''1,x为cur  ''2,x一定不是lef和rig里的点!!! ''   [1,2,5,4,3,6,7,8]  A选择5 ''   I:B在[1,2,4,3]中选,确实是必败的''   II:B可以选择6,可以走2步到8;''     我们设置pair,就是判断II情况的 ''     虽然,pair会得到8这个点 (因为8的ma=2),但实际B选择的6这个点''     从这里也可以发现,其实<递增>和<递减>是一个东西 ''     虽然lef,rig,pair,只记录了<递减>的长度 ''     虽然A只能走递减, B只能走递增;  ##但其实,递增递减是一个东西!!!## 'for(auto it = lower_bound(V.begin(), V.end(), MPR(ma, -5)); it != V.end(); ++it){if((*it).SEC == i){ continue; }else{ succ = false; break; }}}if(succ) ++ ans;
}

博弈论_奇偶性、单向行走相关推荐

  1. 单向板的受力示意图_成品单向滑动铰支座的安装使用

    成品单向滑动铰支座的安装使用 欢迎来到河北路泽科技的知乎,成品单向滑动铰支座是抗震成品中很常见的一种,本篇文章我们会从该支座的特点.安装及性能三个方面来详细的阐述成品单向滑动铰支座. 成品单向滑动铰支 ...

  2. uipath sequence传递参数_湘西单向滑动球铰支座设计参数深化,期待合作

    首页 > 新闻中心 发布时间:2020-11-04 06:26:19 导读:衡水冠桥为您提供湘西单向滑动球铰支座设计参数深化的相关知识与详情: 桥梁用橡胶支承是连接桥梁上部结构和下部结构的重要构 ...

  3. 博弈论_浙大部分_1/8_概述

    本文索引 定义 发展历史 萌芽 成熟 发展 术语 分类 合作博弈和非合作博弈 静态博弈和动态博弈 完全信息博弈与不完全信息博弈 零和博弈与非零和博弈 其他分类 公共危机中的策略举例 定义 博弈 (ga ...

  4. BZOJ_1022_[SHOI2008]_小约翰的游戏John_(博弈论_反Nim游戏)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1022 反Nim游戏裸题.详见论文<组合游戏略述--浅谈SG游戏的若干拓展及变形>. ...

  5. python博弈论_博弈论 威佐夫博奕呜

    有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完者为胜者. ...

  6. python博弈论_博弈论 python

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. 博弈论_浙大部分_3/8_囚徒困境

    文章目录 定义 原因分析 真实世界的囚徒困境 利用他人的囚犯困境 如何破解囚犯困境? 定义 占优策略:是指无论其他参与者采取什么策略,某参与者采用该策略的结果都优于其他策略. 占优策略均衡:由博弈中的 ...

  8. java三位整数倒序相加_用单向链表实现两数倒序相加(java实现)

    很久没做算法题了,准备重操旧业,于是刷了一波LeetCode,看到一个比较经典的链表算法题,分享出来. 题目 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将 ...

  9. 博弈论 之 2 什么是博弈论

    本文接着上一篇博弈论 之 1 什么是博弈论_水w的博客-CSDN博客 目录 回顾: ➢举例: AlphaGo ➢博弈表示方法 ➢扩展型博弈 博弈树 ➢举例: Tic-Tac-Toe ➢MAX纯策略 ➢ ...

最新文章

  1. Configuring the Java Virtual Manager (JVM)
  2. 数据结构源码笔记(C语言):哈夫曼树
  3. CISCO专用协议CDP
  4. python适合做什么生意_适合Python的5大练手项目,你练了么?
  5. 微服务架构--链路追踪(Nginx篇)
  6. mysql 5.7 hint_新特性解读 | MySQL 8.0 新增 HINT 模式
  7. vue的模糊查询和下拉菜单修改信息------------学习记录
  8. 读书笔记《React:引领未来的用户界面开发框架》
  9. php解析二级json,PHP Json 解析
  10. SAP 后勤实施攻略笔记-生产模式和计划策略
  11. matlab:xlswrite
  12. 完全背包告诉你 2020 代表什么
  13. 徐思201771010132《面向对象程序设计(java)》第十六周学习总结
  14. element 如何使用自定义icon图标
  15. Ribo-seq的下游分析方法1-ORFquant以及RiboQC
  16. GOM引擎脚本 时间段内调整人物属性
  17. linux忽略大小写 grep,linux grep不区分大小写查找字符串方法
  18. CHI论文阅读(1)EmoGlass: an End-to-End AI-Enabled Wearable Platform for Enhancing Self-Awareness of Emoti
  19. 深度学习入门笔记(十九):卷积神经网络(二)
  20. 适用于 Android 初学者的 Dagger 2 - DI 第二部分

热门文章

  1. python 绕过国科大教务系统获取所有学生成绩
  2. matlab示波器模拟,[转载]利用MATLAB命令窗口绘制Simulink仿真示波器波形的方法
  3. linux禁止root用户su,Linux 禁止普通用户su到root
  4. Html5 文件上传
  5. Lua实战之以非科学记数法输出小数
  6. 【342期】SpringBoot + Redis 布隆过滤器防恶意流量击穿缓存的正确姿势!
  7. mysql全套理解以及在php中的应用
  8. 学习公式——《微习惯》
  9. excel表突然不会自动计算机,怎么实现EXCEL表格中自动记录当前时间而不是日期,并且不会更新变动...
  10. 用Excel自动产生日期