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

Leetcode 2005. 斐波那契树的移除子树游戏

1.题目基本信息

1.1.题目描述

斐波那契树是一种按这种规则函数 order(n) 创建的二叉树:

  • order(0) 是空树。

  • order(1) 是一棵只有一个节点的二叉树。

  • order(n) 是一棵根节点的左子树为 order(n - 2) 、右子树为 order(n - 1) 的二叉树。

Alice 和 Bob 在玩一种关于斐波那契树的游戏,由 Alice 先手。在每个回合中,每个玩家选择一个节点,然后移除该节点及其子树。只能删除根节点 root 的玩家输掉这场游戏。

给定一个整数 n,假定两名玩家都按最优策略进行游戏,若 Alice 赢得这场游戏,返回 true 。若 Bob 赢得这场游戏,返回 false 。

一棵二叉树的子树 tree 是由 tree 中某个节点及其所有后代节点组成的树。树 tree 也可当作自身的子树。

1.2.题目地址

https://leetcode.cn/problems/subtree-removal-game-with-fibonacci-tree/description/

2.解题方法

2.1.解题思路

博弈论 SG定理

3.解题代码

python代码

class Solution:def findGameWinner(self, n: int) -> bool:# 思路:SG定理if n == 1:return Falsedp = [0]for i in range(1, n):if i == 1:dp.append(1)else:dp.append((dp[i - 1] ^ dp[i - 2]) + 1)return (dp[n - 1] ^ dp[n - 2]) != 0

4.执行结果

相关文章:

  • 【算法提升】分组 day_tow
  • 【Doris基础】Apache Doris业务场景全解析:从实时数仓到OLAP分析的完美选择
  • ECS-7000能耗监测系统能耗数据管理机
  • iEKF的二维应用实例
  • 产品更新|数字主线深度解析:华望解决方案助力企业数字化转型
  • RabbitMQ和MQTT区别与应用
  • 粽叶飘香时 山水有相逢
  • 【动手学深度学习】2.5. 自动微分
  • 北京大学肖臻老师《区块链技术与应用》公开课:06-BTC-网络
  • PSpice软件快速入门系列--07.如何进行Worst Case最坏情况分析
  • TypeScript 中感叹号(!)两种位置用法
  • 基于粒子滤波的PSK信号解调实现
  • C#上传图片后压缩
  • Java处理动态的属性:字段不固定、需要动态扩展的 JSON 数据结构
  • FastAPI 项目配置管理
  • C/C++ 面试复习笔记(2)
  • << C程序设计语言第2版 >> 练习 1-23 删除C语言程序中所有的注释语句
  • 高级数据结构与算法期末考试速成记录
  • 6个月Python学习计划 Day 9 - 函数进阶用法
  • ros2工程在普通用户下正常编译但root下编译无法成功也不会自动停止
  • 专门做黄漫的网站/免费发广告网站
  • 可以做物理题的网站/德国搜索引擎
  • 男男做暧暧视频网站/seo短视频发布页
  • 织梦网站如何上传/优化的含义
  • 有哪些可以做推广的网站/外贸网络推广怎么做
  • 建设网站的骗局是什么/北京推广服务