UVA 1482 Playing With Stones
(蓝书里有这个题貌似)
一言不合就打表,可以发现sg数组是个分形的,所以可以推出递推式:
1.x是偶数时,sg(x)=x/2
2.否则,sg(x)=sg(x/2)
#include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<cstring> #define ll long long using namespace std; ll sg(ll x){ return (x&1)?sg(x>>1):x>>1; } int T,n; ll tot,a; int main(){ scanf("%d",&T); while(T--){ tot=0; scanf("%d",&n); while(n--){ scanf("%lld",&a); tot^=sg(a); } if(tot) puts("YES"); else puts("NO"); } return 0; }
我爱学习,学习使我快乐
标签:
博弈论
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· 终于决定:把自己家的能源管理系统开源了!
· 外部H5唤起常用小程序链接规则整理
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· WPF 怎么利用behavior优雅的给一个Datagrid添加一个全选的功能
· 了解 ASP.NET Core 中的中间件