CF1972B.Coin Games-博弈

news/发布时间2024/5/20 18:40:21

小清新博弈,link:https://codeforces.com/contest/1972/problem/B
题意:\(n\) 枚硬币排成一个,轮流操作,每次拿走一个向上的硬币,然后翻转左右两边的状态(如果只剩 \(2\) 枚硬币,左右两边相当于是同一个硬币,那就不翻转),不能操作的输。


每次操作会让 U 少一个,考虑左右两边的情况,UxU->DxD,UxD->DxU,DxD->UxUU个数的奇偶性并不会因为翻转而改变,因此每次操作必然会让 U 奇偶性改变一次,最终是偶数,直接判 U 的个数即可。

感觉是个挺有意思的博弈,刚开始的时候想的是寻找 \(U-D\) 之类的特征,没找出来,手摸了下对左右的影响才发现。这种题大概是需要一定的直觉了,看完题目会很自然地意识到拿走 \(U\) 会让其减少一个,自然会去找奇偶性之类的特征,但具体观察谁的奇偶性,有时候确实要想一下~

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
using namespace std;
int main(){int tc;cin>>tc;while(tc--){int n;string s;cin>>n>>s;bool ok=0;rep(i,0,n-1)if(s[i]=='U')ok^=1;if(ok)cout<<"YES"<<endl;else cout<<"NO"<<endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.diaolansx.cn/news/65851825.html

如若内容造成侵权/违法违规/事实不符,请联系吊兰实现网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

github在开启双因素认证后无法push

github在开启了双因素认证后,无法push代码 解决办法 1.打开github,点击右上角头像,点击setting2.选择左边菜单最右下角的Developer Settings3.点击 Person access tokens,选择第二个,Tokens(classic)4.创建一个token,可以选择过期时间和权限,如果是个人使用,直接选择不过期,勾上…

探索软件设计的九大核心架构模式

在当今迅速发展的软件开发领域,设计出卓越的软件系统是每一位程序员的追求。软件架构扮演着至关重要的角色,决定了系统的可维护性、可扩展性和性能。本文将深入探讨九大核心架构模式,揭示它们在软件设计中的美妙之处,以及在实际应用中的最佳实践。 分层架构(Layered Archi…

[CISCN 2022 华东北] duck

[CISCN 2022 华东北] duck UAF|leak_libc|leak_heap_base|指针加密|unsortedbin|one_gadget [*] /home/bamuwe/duck/pwnArch: amd64-64-littleRELRO: Full RELROStack: Canary foundNX: NX enabledPIE: PIE enabled$ checksec ./pwn/home/ubuntu/glibc/gl…

Vue入门到关门之Vue项目工程化

一、创建Vue项目 1、安装node环境官网下载,无脑下一步,注意别放c盘就行Node.js — Run JavaScript Everywhere (nodejs.org)需要两个命令npm---->pip node--->python装完检查一下,hello world检测,退出crtl+c2、搭建vue项目环境装cnpm 这个包,下载东西会快很多,装模…

优先级翻转实验以及分析现象

优先级翻转实验以及分析现象 优先级翻转指的是高优先级的任务反而慢执行,低优先级的任务反而优先执行。优先级翻转在抢占式内核中是非常常见的,但是在实时操作系统中是不允许出现优先级翻转的,因为优先级翻转会破坏任务的预期顺序,可能会导致未知的严重后果。上图中三个任务…

redis集群原理

由于redis主从,哨兵都有一些不便之处,redis就提出了集群的概念,并真正实现了。在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等…