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

我不是大富翁【牛客tracker 每日一题】

我不是大富翁

时间限制:2秒 空间限制:128M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

提到大富翁游戏!就想到环!!就想到经典的约瑟夫问题!!!作为经典问题,其出彩的展示了数学思维在实际问题中的应用,启发了一代又一代的算竞人。
好了,不要再约瑟夫了,都是经典问题害的你,没法正常的玩大富翁游戏。现在,让我们来愉快的玩大富翁吧!

R a b b i t RabbitRabbit拿到了一张环形的大富翁地图,地图被平均划分为了n nn个地块,地块的编号以1 11为起点,顺时针进行排布。即1 11号地块的顺时针方向依次为2 , 3 , … … 2, 3, ……2,3,……号地块;1 11号地块的逆时针方向依次为n , n − 1 , … … n , n−1, ……n,n1,……号地块(由于是环形的,所以1 11号地块与n nn号地块相邻,如下图所示)。

游戏过程如下:系统会给定一个长度为m mm的行动力序列a 1 , a 2 , … , a m a_1,a_2,…,a_ma1,a2,,am,在第i ( 1 ≦ i ≦ m ) i (1≦i≦m)i(1im)回合,R a b b i t R RabbitRRabbitR都需要移动a i a_iai个地块,但是他可以自由选择移动的方向(换句话说,可以自由选择是向逆时针还是顺时针方向移动a i a_iai个地块)。
在游戏的开始时,R a b b i t RabbitRabbit位于1 11号地块,他想知道是否存在这样一种移动方式,使得m mm个回合后他依旧在1 11号地块。

输入描述:

每个测试文件仅有一组测试数据。
第一行输入两个整数n nnm ( 1 ≦ n , m ≦ 5000 ) m (1≦n, m≦5000)m(1n,m5000)表示地块数量和行动回合数。
第二行输入m mm个整数a 1 , a 2 , … , a m ​ ( 0 ≦ a i ≦ 2 ⋅ 10 5 ) a_1,a_2,…,a_m​ (0≦a_i≦2⋅10^5)a1,a2,,am(0ai2105)表示行动力序列。

输出描述:

如果m mm个回合后R a b b i t RabbitRabbit依旧在1 11号地块,则输出Y E S YESYES;否则,请输出N O NONO。您可以以任何大小写形式输出答案,例如,y E s 、 y e s yEs 、yesyEsyesY e S YeSYeS都将被视为肯定的回答。

示例1

输入:

360 3 120 120 120

输出:

YES

示例2

输入:

50 5 30 0 10 10 10

输出:

yES

示例3

输入:

114 5 14 1 9 1 9

输出:

no

备注:

如果您需要使用P y t h o n PythonPython解题,我们建议您在提交时选择p y p y 2 pypy2pypy2p y p y 3 pypy3pypy3

解题思路

本题是环形可达性动态规划的经典模型,核心是逐回合维护可能停留的位置集合,利用模运算处理环形移动,最终检查起点是否仍在集合中。

1. 问题等价转化
2. 算法实现:逐回合 DP
  1. 状态表示:用一个布尔数组x表示当前回合可能的位置,长度n nnx[pos]=1表示可以到达该位置。初始x[0]=1
  2. 状态转移
    • 每回合新建布尔数组t(全零),遍历j ∈ [ 0 , n − 1 ] j \in [0, n-1]j[0,n1],若x[j]==1,则将t[(j + a[i]) % n]t[(j - a[i] % n + n) % n]置为 1。
    • t替换x,进入下一回合。
  3. 结果判定m mm回合后,若x[0]为真则输出YES,否则输出NO
3. 复杂度分析

总结

将环形移动转化为模n nn的加减操作,用逐回合 DP 维护所有可能到达的位置集合。由于n , m n, mn,m不大,直接模拟所有可能路径即可,无需贪心或数学构造。

代码简要说明

  1. 输入处理:读入n , m n, mn,m和行动力数组a aa
  2. DP 数组初始化vector<ll> x(n)作为当前回合可达状态,x[0]=1表示起点。
  3. 逐回合转移
    • 创建临时数组t(n)
    • 遍历j jj,若x[j]==1,计算(j + a[i]) % n((j - a[i]) % n + n) % n,在t中标记。
    • swap(x, t)更新状态。
  4. 结果输出:检查x[0]的值,输出YESNO

代码内容

#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vvt;typedefpair<ll,ll>pll;constll N=1e3+10;constll INF=1e18;constll M=1e6+10;constll mod=1e9+7;voidS(){ll n,m;cin>>n>>m;vector<ll>a(m);for(ll i=0;i<m;i++)cin>>a[i];vector<ll>x(n);x[0]=1;for(ll i=0;i<m;i++){vector<ll>t(n);for(ll j=0;j<n;j++){if(x[j]==1){t[(j+a[i])%n]=1;t[((j-a[i])%n+n)%n]=1;}}swap(x,t);}if(x[0])cout<<"YES\n";elsecout<<"NO\n";}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);ll T=1;while(T--)S();return0;}
http://www.jsqmd.com/news/1257655/

相关文章:

  • HarmonyOS开发实战:小分享-Hamock Mock 测试——依赖隔离
  • 免费开源AMD Ryzen调试神器:5个核心技巧彻底释放处理器潜能
  • 元宝纸生产一体机生产商批发采购要点及落地合作指南 - 热点品牌推荐
  • 天津公园专用的预制护坡砖厂选购要点及行业全解读 - 热点品牌推荐
  • 免费文档下载神器:跨平台文档获取的终极解决方案
  • 2026年江西及周边优质镀锌焊接管生产厂家推荐参考 - 热点品牌推荐
  • LLM推理优化实战:从KV Cache到Speculative Decoding,把延迟打下来
  • 3个黑科技网站,建议直接收藏!
  • 2026年中马山县装饰公司诚信度与专业力深度剖析 - 装修教育财税推荐2026
  • 最高 1.5TB 内存!苹果未来的 Mac,可能不是给人用的 高配版 Mac Studio 的订单,要排队四到五个月。
  • 2026年黄腐酸浓缩液厂家选哪家 多维度对比适配各类农业需求 - 热点品牌推荐
  • TMS320C6748 eHRPWM与GPIO配置实战:从架构到代码实现
  • 2026科技前沿的国内EMBA中立择校测评
  • ZenlessZoneZero-OneDragon:三步实现绝区零高效自动游戏体验
  • D3KeyHelper暗黑3按键助手:免费开源的游戏自动化终极指南
  • �鸿蒙报错速查:arkts-no-in 禁用 in 操作符,用了就炸,根因 + 真解法
  • 2026清远漏水检测维修本地口碑榜TOP5权威推荐-专业仪器精准测漏-正规防水补漏公司推荐:卫生间/厨房/屋顶/阳台/外墙渗漏水检测师傅上门 - 安佳防水
  • 告别Office启动等待:3秒预览Word/Excel/PPT的终极方案
  • 辽宁本地品质好的杂粮煎饼实力厂家选购指南 - 热点品牌推荐
  • 5分钟终极指南:免费解锁Adobe全家桶的完整解决方案
  • 分布律和分布函数
  • 2026年阻燃防滑绝缘胶垫制造商哪家好实用选购指南 - 热点品牌推荐
  • 浏览器端EPUB构建技术栈:零部署的现代电子书编辑解决方案
  • 2026适合科技公司高管的全球EMBA中立测评
  • 为什么你的英文Prompt总被误读?揭秘中文提示词翻译中隐藏的4层语义损耗机制
  • 格式工厂去广告免安装版 | FormatFactory(v5.22.0.0)无需安装,解压即用
  • 温州本地防水补漏精选TOP5推荐:正规漏水检测维修公司上门师傅推荐:厕所/棚顶/屋面/飘窗/阳台/地下室/厨房渗漏水精准测漏维修(2026最新) - 即刻修防水
  • 高精度DAC8881应用实战:从R-2R原理到±10V输出设计
  • 掌握建设工程围挡批发厂家选择标准 做好工地采购决策 - 热点品牌推荐
  • 桌游卡牌批量生成神器:3分钟掌握EZCard高效设计秘诀 [特殊字符]