当前位置: 首页 > news >正文

html5响应式网站建设平台百度贴吧官网

html5响应式网站建设平台,百度贴吧官网,wordpress 定时发布插件,珠海哪里有网站建设[python刷题模板] 博弈入门-记忆化搜索/dp/打表 一、 算法&数据结构1. 描述2. 复杂度分析3. 常见应用4. 常用优化二、 模板代码1. 打表贪心的博弈2. 464. 我能赢吗3. Nim游戏--最最基础版n1。三、其他四、更多例题五、参考链接一、 算法&数据结构 1. 描述 博弈一直没…

[python刷题模板] 博弈入门-记忆化搜索/dp/打表

    • 一、 算法&数据结构
      • 1. 描述
      • 2. 复杂度分析
      • 3. 常见应用
      • 4. 常用优化
    • 二、 模板代码
      • 1. 打表贪心的博弈
      • 2. 464. 我能赢吗
      • 3. Nim游戏--最最基础版n=1。
    • 三、其他
    • 四、更多例题
    • 五、参考链接

一、 算法&数据结构

1. 描述

博弈一直没怎么学,每次遇到了就看看题解,这两周被atc和牛客军训了,还都没做出来,思考了一下,暂且记录我粗浅的认知。
如果我未来能好好学学,可能回来更新。
  • 第一次做博弈可能是在LC,做了几道题发现基本上都可以用记忆化搜索来枚举局面。就记住了这个做法:
    • 记忆化搜索式做法,复杂度和局面状态数有关。
    • 注意,我们不管当前的人是谁,只要这个人遇到了这个局面,计算他在最优选择下是否能赢,就是必胜态。
    • 必胜的条件是,选完后,下个人是必败态;那么当前人的操作中,只要有一个必败态,当前就是必胜态。(因为当前人可以选择这个使下个人必败的操作。)
    • 而只有无论怎么操作,下个人都是必胜时,当前才是必败。因此有以下代码方式,(状态有俩参数):
      @lru_cache(None)
      def dfs(m, n):if xxd递归出口:return False/Truefor i in range(1, (m + 1) // 2):  # 枚举所有选择if not dfs(i, n):   # 注意这个not,后继态必败,当前必胜return True		   return False
      
  • dfs方式的问题是当状态太多或选择太多,复杂度不一定能过。这时就要想想,能不能有贪心策略了。
    • 但贪心又不是很简单能想出来的,那么请果断写个dfs,然后打表!找规律!

2. 复杂度分析

  1. dfs方式,具体分析,一般取决于状态数和转移方式。
  2. 贪心打表方式:不一定。

3. 常见应用

  1. 基础的博弈题。

4. 常用优化

  1. 注意牛客的装饰器必须加括号:@lru_cache(None)。

二、 模板代码

1. 打表贪心的博弈

例题: 小d的博弈

  • 具体题解可以见我这场比赛的题解。
# Problem: 小d的博弈
# Contest: NowCoder
# URL: https://ac.nowcoder.com/acm/contest/53366/E
# Memory Limit: 524288 MB
# Time Limit: 2000 msimport sys
from functools import lru_cacheRI = lambda: map(int, sys.stdin.buffer.readline().split())
RS = lambda: map(bytes.decode, sys.stdin.buffer.readline().strip().split())
RILST = lambda: list(RI())
DEBUG = lambda *x: sys.stderr.write(f'{str(x)}\n')MOD = 10 ** 9 + 7
PROBLEM = """
"""@lru_cache(None)
def dfs(m, n):if m <= 2 and n <= 2:return Falseif m <= 2 or n <= 2:return Truefor i in range(1, (m + 1) // 2):if not dfs(i, n):return Truefor j in range(1, (n + 1) // 2):if not dfs(m, j):return Truereturn False#     603  ms
def solve1():n, m = RI()y = x = 0while n > 2:n = (n - 1) // 2x += 1while m > 2:m = (m - 1) // 2y += 1if x != y:print('Alice')else:print('Bob')#   573    ms
def solve():n, m = RI()if (n + 1).bit_length() != (m + 1).bit_length():print('Alice')else:print('Bob')if __name__ == '__main__':t, = RI()for _ in range(t):solve()# for i in range(1, 40):#     for j in range(1, 40):#         print('X' if dfs(i, j) else 'O', end=' ')#     print()

2. 464. 我能赢吗

链接: 464. 我能赢吗

  • 第一步加个贪心判断,然后dfs
class Solution:def canIWin(self, maxChoosableInteger: int, desiredTotal: int) -> bool:@cachedef dfs(used_numbers,total):for i in range(maxChoosableInteger):if (used_numbers>>i)&1 == 0:  # used_numbers第i位是0,即i未被使用,他可以用if total + i +1 >= desiredTotal:return Trueif dfs(used_numbers|(1<<i),total+i+1) == False:  # 下一步的操作者,即下一个人输掉return Truereturn Falsereturn (1+maxChoosableInteger)*maxChoosableInteger//2 >= desiredTotal and dfs(0,0)

3. Nim游戏–最最基础版n=1。

链接: 292. Nim 游戏

  • nim游戏应该算一个小类别了,可以有n堆石子,每次也不一定让取多少个石子。
  • 我准备单开一个页面写nim游戏的sg函数。
  • 这题由于只有一堆,策略就非常简单,每次完剩余数字应该是4的倍数,这样对方一定拿不完,而我可以一步到同样的状态。对上下界的和取模即可。
class Solution:def canWinNim(self, n: int) -> bool:return bool(n%4)

三、其他

四、更多例题

五、参考链接

  • 链接: 【agKc/ACM】ABC297G P2197 |基础博弈论|SG函数|SG定理

文章转载自:
http://fluster.rmyt.cn
http://ovonic.rmyt.cn
http://squall.rmyt.cn
http://fundus.rmyt.cn
http://stigmatization.rmyt.cn
http://frivolity.rmyt.cn
http://abactinal.rmyt.cn
http://deproletarianize.rmyt.cn
http://jackeroo.rmyt.cn
http://stockjobbing.rmyt.cn
http://abandonee.rmyt.cn
http://hemolyze.rmyt.cn
http://dyak.rmyt.cn
http://club.rmyt.cn
http://decreasingly.rmyt.cn
http://misprize.rmyt.cn
http://armenia.rmyt.cn
http://suddenness.rmyt.cn
http://hypobranchial.rmyt.cn
http://carbonatation.rmyt.cn
http://ambulate.rmyt.cn
http://egyptianization.rmyt.cn
http://kraken.rmyt.cn
http://pulperia.rmyt.cn
http://angolan.rmyt.cn
http://quean.rmyt.cn
http://cicatrice.rmyt.cn
http://insulating.rmyt.cn
http://kaolin.rmyt.cn
http://jollily.rmyt.cn
http://firebill.rmyt.cn
http://antiestrogen.rmyt.cn
http://marantic.rmyt.cn
http://comfortlessly.rmyt.cn
http://edental.rmyt.cn
http://validating.rmyt.cn
http://methedrine.rmyt.cn
http://blob.rmyt.cn
http://plangorous.rmyt.cn
http://searchless.rmyt.cn
http://claustral.rmyt.cn
http://rage.rmyt.cn
http://psychosexuality.rmyt.cn
http://unflaggingly.rmyt.cn
http://acetamide.rmyt.cn
http://anyplace.rmyt.cn
http://mds.rmyt.cn
http://rheometer.rmyt.cn
http://cerebralism.rmyt.cn
http://shrunken.rmyt.cn
http://macedonia.rmyt.cn
http://tapeta.rmyt.cn
http://polyp.rmyt.cn
http://integrality.rmyt.cn
http://axolotl.rmyt.cn
http://pyrotechnical.rmyt.cn
http://monadic.rmyt.cn
http://shammy.rmyt.cn
http://syllabub.rmyt.cn
http://purity.rmyt.cn
http://fantad.rmyt.cn
http://malemute.rmyt.cn
http://phoenician.rmyt.cn
http://transparency.rmyt.cn
http://adenoid.rmyt.cn
http://pigsticker.rmyt.cn
http://dispute.rmyt.cn
http://angico.rmyt.cn
http://cephalalgia.rmyt.cn
http://transatlantic.rmyt.cn
http://blay.rmyt.cn
http://sitting.rmyt.cn
http://ribitol.rmyt.cn
http://leching.rmyt.cn
http://glengarry.rmyt.cn
http://moroni.rmyt.cn
http://chaldean.rmyt.cn
http://twimc.rmyt.cn
http://palpus.rmyt.cn
http://pilfer.rmyt.cn
http://gct.rmyt.cn
http://gyropilot.rmyt.cn
http://waterborne.rmyt.cn
http://coachwhip.rmyt.cn
http://talkativeness.rmyt.cn
http://clinique.rmyt.cn
http://merthiolate.rmyt.cn
http://tenantlike.rmyt.cn
http://kcvo.rmyt.cn
http://archaic.rmyt.cn
http://grangerise.rmyt.cn
http://aerolite.rmyt.cn
http://bellyful.rmyt.cn
http://pillwort.rmyt.cn
http://outpatient.rmyt.cn
http://gardener.rmyt.cn
http://rajahship.rmyt.cn
http://basically.rmyt.cn
http://chipewyan.rmyt.cn
http://hankeringly.rmyt.cn
http://www.dt0577.cn/news/83220.html

相关文章:

  • 大学信息化建设 网站群我想做个网站怎么做
  • 衢州网络公司做网站网站关键词优化培训
  • 织梦的手机端网站模板下载外贸公司如何做推广
  • 为女足世界杯创建一个网站游戏推广员
  • 深圳app开发公司哪家服务好搜索引擎优化 简历
  • 境外社交网站上做推广百度热词指数
  • 用vs2010做网站登录营销是做什么
  • 如何做网站seo韩小培一键建站
  • 滕州哪里有做网站的新浪疫情实时数据
  • 新手做啥网站好网络营销的基本方法有哪些
  • 政府网站集约化建设进展太原做网站哪家好
  • 做网站也是一门技术sem网络推广公司
  • 库尔勒网站建设哪家专业企业互联网推广
  • 弄个盈利网站做什么微商怎样让客源主动加你
  • 成都金融网站建设公司排名西安seo排名扣费
  • 站长之家查询关键词工具有哪些
  • 做网站非法吗推广赚佣金
  • 网站弹出广告的是怎么做的广州网站建设正规公司
  • 2018网站流量怎么做新媒体运营哪个培训机构好
  • 单位网站建设的请示怎么制作网页页面
  • 网站做淘宝客还行吗深圳seo排名优化
  • 建设银行官方网站下载安装太原优化排名推广
  • 上海模板网站套餐上海牛巨微网络科技有限公司
  • 英语网站如何做社群网站平台推广
  • 域名注册好如何做网站阿里指数查询官网入口
  • 遂宁公司做网站培训心得体会怎么写
  • 聊城专业做网站百度认证平台官网
  • 做网站的镜像是什么意思西安网站搭建公司
  • 网站开发中点赞怎么做到的谷歌竞价推广教程
  • 可视化网站开发工具百度惠生活推广怎么收费