博弈---ZOJ 2083 Win the Game(染绳子)

2024-06-14 08:32
文章标签 zoj 2083 win game 绳子 博弈

本文主要是介绍博弈---ZOJ 2083 Win the Game(染绳子),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原题http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2083

大意:两个人分别对n条绳子染 每次染m长 最后染不下的输,问先手胜负

思路:每一条绳子看做一个子问题(求每个绳子的SG再异或就是整个事件的SG),每条绳子 染的m的段 左右两端各一段,

分别求这左右两端的SG再异或 通过SG打表或递归求出整个绳子的各地方的SG

#include<stdio.h>
#include<string.h>
int fib;
int SG[60];void getsg(){bool vis[56];memset(SG,0,sizeof(SG));for(int i=2;i<=50;i++){ //i 为当前总长度memset(vis,0,sizeof(vis));for(int j=0;j+2<=i;j++)  //j 为左端长度vis[SG[j]^SG[i-j-2]]=1;for(int k=0;k<=55;k++)if(vis[k]==0){SG[i]=k;break;}}}int main(){fib=2;getsg();int n,t;int sum=0;while(~scanf("%d",&n)){sum=0;while(n--){scanf("%d",&t);sum^=SG[t];}if(sum==0)printf("No\n");else printf("Yes\n");}return 0;
}

另外还有一种题型;

//将上题的线段改为环 做法一样先手先取一段m 问先手胜负
//思路还是一样 先手先取一段,破环为线段,现在就是换对手考虑线段
//做法还是一样 这边改为SG(n-m)  然后判断胜负条件改为和原题相反(应该懂吧?)


这篇关于博弈---ZOJ 2083 Win the Game(染绳子)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059888

相关文章

Win IDEA 最常用快捷键

Win IDEA 最常用快捷键 快捷键功能说明Alt + Enter快捷修复Alt + Insert生成Getter/Setter等代码Alt + ↑ / ↓方法间移动Ctrl + Alt + B跳转到实现处Ctrl + Alt + L格式化代码Ctrl + Alt + O自动导包Ctrl + Alt + Space自动补全Ctrl + Alt + T新建代码块如try/catchCtrl +

JetBrains PhpStorm 2024 mac/win版:探索PHP之美,智慧编程新境界

JetBrains PhpStorm 2024是一款卓越的PHP集成开发环境(IDE),专为满足现代PHP开发者的需求而精心打造。它凭借强大的功能和出色的性能,赢得了全球开发者的广泛赞誉。 PhpStorm 2024 mac/win版获取 PhpStorm 2024提供了智能的代码编辑功能,包括自动补全、语法高亮、代码重构等,使得编写PHP代码更加高效、流畅。同时,它还内置了丰富的代码

百度笔试题:绳子最多覆盖多少个点

版权所有。所有权利保留。 欢迎转载,转载时请注明出处: http://blog.csdn.net/xiaofei_it/article/details/17123711 百度笔试题: 数轴上从左到右有n个点,a[0] ,a[1],…,a[n-1],给定一根长度为L绳子,求绳子最多覆盖其中几个点?

博弈论+递推+调和级数枚举,CF 1033C - Permutation Game

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1033C - Permutation Game 二、解题报告 1、思路分析 我们考虑一个位置符合什么条件可以必胜? 如果可以跳到一个必败的位置 考虑最大的格子一定是必败 而每个格子只能跳到比自己大的格子 于是我们就可以倒序处理状态 对于每个格子枚举比自己大

Acrobat Pro DC 2021:Mac/Win平台上全面高效的PDF编辑器

Acrobat Pro DC 2021是一款在Mac和Windows平台上广受欢迎的PDF编辑器,它凭借其全面的功能和高效的性能,为用户提供了卓越的PDF处理体验。 一、编辑功能全面强大 Acrobat Pro DC 2021允许用户轻松创建、编辑、合并、转换、签署和分享PDF文件。无论是对PDF文档中的文字、图像、表格和链接进行编辑,还是添加、删除、移动和调整页面,都能轻松完成。此外,该软件

【游泳game】

编写一个游泳游戏涉及到多个方面,包括游戏设计、图形渲染、物理模拟、音效和用户界面。以下是一个简化的游泳游戏编写流程,假设我们使用Unity游戏引擎进行开发: 1. 游戏设计 游戏目标:确定游戏的基本规则,例如计时赛、竞速赛或技巧挑战。角色和场景:设计玩家角色和游泳池场景,包括赛道、观众、记分牌等。游戏玩法:设计控制方式,如触摸屏、键盘或体感控制器。 2. 准备开发环境 安装Unity编辑器

293. Flip Game

题目大意:给一串字符++–….,要依次把所有两个连续++翻转成–,求所有可能的输出. 解题思路:一次遍历,遇到两个连续的++就翻转,输出.同时保证不影响原串,用一个tmp来操作. 注意:这里有一个奇怪的bug,若不先求出s的长度n,而是在for循环中设终止条件为 s.length()-1,则遇到空串(长度为0)会报错 代码: class Solution {public:vector<s

华企网安技术博弈:白帽子团队如何破解网赌网站

在数字化时代,網賭作为一种新型犯罪形式,其隐蔽性和跨国性给执法机关带来了前所未有的挑战。一批专业的网络安全团队——白帽子,正利用他们的专业技能与犯罪分子进行技术博弈,有效地破解網賭网站,为打击網賭犯罪贡献力量。 網賭的隐蔽性与危害 網賭利用互联网的匿名性和便捷性,迅速蔓延至全球各个角落。其隐蔽性强,资金流动快,且往往涉及跨国犯罪,给执法机关的打击带来了极大的困难。此外,網賭不仅侵蚀社会

【快乐星球game】

编写游戏程序代码是一个复杂的过程,涉及到游戏设计、编程、图形设计、音效制作等多个方面。以下是一个非常简化的示例,用于展示如何开始编写一个基本的游戏程序。我们将使用Python语言和一个名为Pygame的库来创建一个简单的游戏。 首先,确保你已经安装了Python和Pygame。你可以通过运行以下命令来安装Pygame: pip install pygame 然后,我们可以编写一个简单的游戏程

[SCU 4516] Mingo's Game (斜率DP)

SCU - 4516 有 N个关卡,可以分为 K块,每个关卡都有个权值 ti t_i 每次选择最早没有通关的关卡块,设这个关卡包含了 [i,j] [i,j]的游戏 选到最早没有通关的关卡是k, 选到 k的概率是 P=tk∑jx=ix P =\frac {t_k} {\sum_{x=i}^j x} 选到一个关卡一定能通关,花费一小时 求合理分块的情况下,通关所有关卡块的期望时间最小