正题


题目大意

有nnn堆石子,每次选择一个区间博弈,先手必须先取最右边的石子堆。

每次询问(r,a,b)(r,a,b)(r,a,b)表示在a∼ba\sim ba∼b中选择一个数lll。要求使用l∼rl\sim rl∼r这个区间的石子进行博弈,然后若先手必胜输出最右边的石子需取的最大石子个数并让石子堆减去这个数。若先手必败输出−1-1−1


解题思路

首先这是一个NIMNIMNIM博弈,若alxoral+1xoral+2xor...xorar=0a_l\ xor\ a_{l+1}\ xor\ a_{l+2}\ xor...\ xor\ a_r=0al​ xor al+1​ xor al+2​ xor... xor ar​=0那么先手必败。

那如果alxoral+1xoral+2xor...xorar−1=xa_l\ xor\ a_{l+1}\ xor\ a_{l+2}\ xor...\ xor\ a_{r-1}=xal​ xor al+1​ xor al+2​ xor... xor ar−1​=x且x≤arx\leq a_rx≤ar​那么我们可以从ara_rar​中取走ar−xa_r-xar​−x个石头然后使得ar=xa_r=xar​=x那么这样轮到后手开始时所以的异或起来就为0了。

那么我们如何求最小值呢?分块套Trie暴力!

因为数据水所以能够过,不过需要加两个优化

  1. 当b=rb=rb=r时直接让lll取rrr,这个十分显然,因为要使异或和最小所以自己异或自己就是0
  2. 当ar=0a_r=0ar​=0时输出-1,依旧十分显然

日后可能会将正解补上有生之年


codecodecode

#pragma GCC optimize(2)
%:pragma GCC optimize(3)
%:pragma GCC optimize("Ofast")
%:pragma GCC optimize("inline")
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=110000;
int n,w[N],m;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&w[i]);scanf("%d",&m);while(m--){int x=0,ans=2147483647,a,b,r;scanf("%d%d%d",&r,&a,&b);if(w[r]==0){printf("-1\n");continue;}if(r==b){printf("%d\n",w[r]);w[r]=0;continue;}for(int i=r-1;i>=a;i--){x=x^w[i];if(i<=b) ans=min(ans,x);}if(w[r]-ans>0) printf("%d\n",w[r]-ans),w[r]=ans;else printf("-1\n");}
}

jzoj3339-[NOI2013模拟]wyl8899和法法塔的游戏【博弈论,暴力】相关推荐

  1. 【线段树】【FeyatCup】——2.法法塔的奖励

    首先感谢并膜拜两位大佬 wyl8899 & 法法塔 感谢两位的出题! 题目: 法法塔是很喜欢写程序的.所以冒着就算码农屌丝一辈子的风险也大无畏地写着程序. 码农们为了表彰法法塔的坚持与执着,决 ...

  2. 序贯高斯模拟和普通克里格法的区别

    序贯高斯模拟和普通克里格法的区别 1.序贯高斯模拟 模拟结果整体分布较离散,突出原始数据的非均质性和不确定性. 可产生多个结果. 2.普通克里格法 模拟结果追求最高的估值精度和最小的估值方差,空间分布 ...

  3. 最近迷上了自走棋塔防游戏,玩法比较休闲,而且耐玩!

    梦塔防-自走棋 梦塔防手游是一款3V3即时对战类手机游戏,也是自走棋模式打造的游戏,游戏以策略元素为主,玩家在游戏中可以自由调配兵种,以及功防阵局,丰富的兵种以及精致的游戏界面,为你提供更好的游戏体验 ...

  4. 365. 水壶问题-暴力模拟倒水过程-递归法

    365. 水壶问题-暴力模拟倒水过程-递归法 有两个水壶,容量分别为 jug1Capacity 和 jug2Capacity 升.水的供应是无限的.确定是否有可能使用这两个壶准确得到 targetCa ...

  5. [原创]测试用例设计之场景法法

    [原创]测试用例设计之"场景法"法  场景法设计测试用例,主要用在于事件触发流程中,当某个事件触发然后就形成相应的场景流程,不同的事件触发,不同顺序和不同的处理结果,就形成一系列的 ...

  6. 手机h5像素_塔防游戏:全民主公H5,最好玩的塔防游戏

    小编带你发现精彩好玩的游戏! 今天小编推荐的这款游戏叫<全民主公H5>, 本公众号持续更新, 小编将搜罗全网人气最高,最热门的小游戏大全, 仙侠游戏,武侠游戏,魔幻游戏,塔防游戏,SLG策 ...

  7. 开发者已将您从测试计划中移除_深度合作,Ohayoo定制模式为开发者提供更全面的支持|塔防|游戏|休闲游戏|ohayoo|塔防游戏...

    Ohayoo和成都这个城市的缘分由来已久.据统计,在过去一年多时间里,Ohayoo为成都地区超过50家开发者提供了产品调优上的建议,与超过20家开发者建立了实质性的合作关系,并储备了待上线产品10余款 ...

  8. 塔防游戏的路径寻找算法分析

    在塔防游戏中,有很多敌人都是向着同一目标前进的.在众多塔防游戏当中,有一条或几条预定好的路径.在一些塔防游戏中,比如经典的<Desktop Tower Defense>,你可以将塔放在地图 ...

  9. 用Unity开发一款塔防游戏(一):攻击方设计

    大家好.偶尔想起了这个手把手教学的.但现已长满杂草的坑,还是来挖几铲子. 这一期的游戏是最常见的类型之一--塔防. 塔防游戏相信大家并不陌生,几个主要元素如下: 1.敌方士兵 2.我方防御塔 3.我方 ...

  10. GemCraft Labyrinth:超耐玩的在线flash塔防游戏

    GemCraft Labyrinth是一个在线flash塔防游戏,中文名字可以理解为宝石塔防.这个游戏拥有众多的关卡(169关),所以和植物大战僵尸一样十分的耐玩,除此之外,独特的宝石合成模式.技能点 ...

最新文章

  1. spring是如何解析自己的配置文件的
  2. 全球及中国生产性服务产业动态展望与十四五建设现状规划报告2022版
  3. docker版wordpress
  4. About SCCM 2012 UDA(User Device Affinity)
  5. DML风格的批量更新/删除
  6. flask中的请求上下文
  7. Codeforces 40 E. Number Table
  8. 后悔药来了?发出去的微信图文消息删除后不再显示
  9. 虚函数、C++类、结构体、父类与子类的继承性
  10. 飞客蠕虫病毒?分析、定位、处理
  11. VS2013编译最简单的PPAPI插件
  12. 《Python参考手册》3 类型与对象
  13. 计算机教师招聘10分钟试讲,小学数学教师招聘考试面试,要求是一个小时备课,试讲十分钟,怎么准备?求助各位前辈~...
  14. 道可道,非常道 ---8个做事之“理”
  15. 学习信奥要不要先学python
  16. phpstudy2018修改网站根目录以及本地域名访问配置方法
  17. 入职5G网络优化工程师,税后9k,周末双休,你也可以!—分享优橙小故事
  18. 网络检测,排错的顺序与方法
  19. 文件系统的层次结构的理解总结
  20. 吉特仓库管理系统-ORM框架的使用

热门文章

  1. oracle中的的instr,Oracle中instr函数使用方法
  2. vue 给取data值_web前端教程分享Vue相关面试题
  3. php 初始二维数组长度,php二维数组排序与默认自然排序的方法介绍
  4. 序列每天从0开始_序列比对(十一)——计算符号序列的全概率
  5. 11尺寸长宽 iphone_新手必知LED显示屏尺寸规格及计算方法
  6. 用计算机组成原理+唐朔飞的,计算机组成原理 唐朔飞 习题解答
  7. mysql innodb log_教你如何理解mysql中的innoDB log
  8. [RabbitMQ]消息应答概念_消息手动应答代码
  9. java.sql 拒绝连接_hive jdbc 拒绝连接问题
  10. python 16进制补零_Python输出16进制不带0x补零,整数转16进制,字符串转16进制