题目大意:

题目链接:https://jzoj.net/senior/#main/show/3339
一个序列aaa,每次给定l,r,Rl,r,Rl,r,R,在[l,r][l,r][l,r]中选择一个点xxx,先手第一次必须选择在第RRR堆石子内取。求[x,R][x,R][x,R]的NIMNIMNIM博弈先手是否有必胜策略,若有择输出第一手先手取的石子个数。
询问之间互相关联。


思路:

对于每一组询问我们枚举区间[l,r][l,r][l,r]中的iii,然后如果先手必胜,则说明先手在a[R]a[R]a[R]中选择若干石子使得a[i]xora[i+1]xor...xora[R]=0a[i]\ xor\ a[i+1]\ xor...xor\ a[R]=0a[i] xor a[i+1] xor...xor a[R]=0。
设x=a[i]xora[i+1]xor...xora[R−1]x=a[i]\ xor\ a[i+1]\ xor...xor\ a[R-1]x=a[i] xor a[i+1] xor...xor a[R−1]。那么则要找到合适的ansansans使得xxor(a[R]−ans)=0x\ xor\ (a[R]-ans)=0x xor (a[R]−ans)=0。
我们知道,有且仅有形如pxorpp\ xor\ pp xor p的情况下才可以等于0。所以我们所求即为x=a[R]−ansx=a[R]-ansx=a[R]−ans。
由于询问直接互相关联,我们不可以用前缀异或和。只需从RRR倒序循环到lll,每次询问时暴力求异或和。注意只有下标≤r\leq r≤r时才可以更新答案。
时间复杂度O(nm)O(nm)O(nm)。显然不可以过卡一卡就过去了。
正解是分块+可持久化TrieTrieTrie。


代码:

#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#include <cstdio>
#include <string>
#include <algorithm>
#define reg register
using namespace std;const int N=100010,Inf=2e9;
int n,T,ans,l,r,R,x,a[N];int read()
{int d=0;char ch=getchar();while (!isdigit(ch)) ch=getchar();while (isdigit(ch)) d=(d<<3)+(d<<1)+ch-48,ch=getchar();return d;
}void write(int x)
{if (x>9) write(x/10);putchar(x%10+48);
}int main()
{n=read();for (reg int i=1;i<=n;i++)a[i]=read();T=read();while (T--){R=read(); l=read(); r=read();ans=Inf; x=0;if (!a[R]) puts("-1");else if (R==r) write(a[r]),putchar(10),a[r]=0;else {for (reg int i=R-1;i>=l;i--){x^=a[i];if (i<=r&&x<ans) ans=x;}if (a[R]-ans>0) write(a[R]-ans),putchar(10),a[R]=ans;else puts("-1");}}return 0;
}

【JZOJ3339】wyl8899和法法塔的游戏【暴力】相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 如何高效设计游戏——塔防游戏设计方案

    前言 目前国内市场的游戏普遍为一些带有"快餐特色的RPG"游戏居多,并且这一类型的游戏的设计思路已经发展成为游戏开发者们"月经"一样的存在,有很多人" ...

  7. unity塔防游戏怪物转向_玩一玩这款塔防游戏?

    关注上方蓝字获得更多内容 今日分享塔防游戏 塔防游戏,曾经也是风靡一时,非常受人喜欢的. 今天小皮分享的这款和保卫萝卜可以说是异曲同工,还是不错的. 该游戏拥有精美的画面,并且在形象设计上也制作的相当 ...

  8. unity塔防游戏怪物转向_英雄塔防物语游戏下载-英雄塔防物语官方版 v2.3.8最新版...

    英雄塔防物语手游欢迎大家来下载,英雄塔防物语是一款二次元塔防放置手游,这款游戏为大家带来全新的角色,玩家可以收集卡牌进行组合对战,玩法十分丰富,还有丰富的剧情等你来解锁哦. [游戏简介] 英雄塔防物语 ...

  9. unity塔防游戏怪物转向_野生防御塔游戏下载-野生防御塔游戏安卓版 v1.0

    野生防御塔是一款塔防策略类型的游戏,经典好玩的塔防策略玩法等你来,在这开启一场刺激的塔防吧.你需要依靠塔防建筑抵挡怪物的攻击,同时也需要面对对手的偷袭.依靠击杀怪物获得的金币可以购买一些道具升级你的塔 ...

  10. 汉诺塔小游戏 c语言

    相信大家在学习C语言嵌套的时候已经学习过经典问题汉诺塔了,我学习时就想能不能搞个汉诺塔的游戏出来,结果睡了一觉就给忘了.今天突然想起,搞出来与大家分享,水平一般,但符合汉诺塔规则.最终代码我放在文章最 ...

最新文章

  1. 39个超实用jQuery实例应用特效
  2. 是时候不把智能手机叫做电话了:移动AI时代来临!
  3. UI中的响应时间:3个重要的界限
  4. (转)七牛云phpSDK使用笔记
  5. jsp怎么连接mysql_jsp如何连接数据库!
  6. java服务器向客户端发消息_java一个简单的客户端向服务端发送消息
  7. 武汉将投放5亿元消费券,4月19日微信率先开抢
  8. Porteus 2.0 RC1 发布,轻量级 Linux 版本
  9. 异步回调发展(地狱回调)
  10. ssh连接Linux很慢,且ssh传输文件很慢的解决方案
  11. 窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo
  12. QQ互联官网使用跳坑
  13. 复习IO流复制文件时,文件损坏并且文件变得超大(FileInputStream和FileOutputStream)数组复制
  14. 入门人工智能该读哪些书?五份AI经典书单
  15. 主机序、网络序的理解
  16. Vitamio使用篇,打造强悍的视频播放器
  17. Java jdk14.0.1安装简单步骤
  18. 结构体之选夫婿(冒泡加快排)
  19. add p4 多个文件_p4 选择性上传file
  20. 2021-01-17

热门文章

  1. 元宇宙专题003 | 如何才能抢先一步,各个省市元宇宙布局抢先看
  2. 关于git reset --hard这个命令的惨痛教训
  3. 超级马里奥代码_任天堂源代码泄露,引出超级马里奥64隐藏24年的角色
  4. Access Token是做什么的
  5. VMware中建立共享文件夹 win7
  6. vuejs --- 父组件向子组件传值(父传子)
  7. Rstudio代码自动格式化:styler
  8. 用Python写一个记忆翻牌小游戏呀!
  9. 在tomcat里面配置数据库地址,以及在Spring和Java中的使用
  10. 联想电脑关闭HotKey (热键模式),使用快捷功能时才需按Fn