Description

法法塔和wyl8899都喜欢玩游戏。但是每次玩游戏法法塔都被wyl8899虐。

为了安慰可怜的法法塔,wyl8899决定大发慈悲,修改了一下游戏规则。

是这样的,这儿有一堆石子排成一列,每次wyl8899让hza选择一个区间进行游戏。游戏嘛,就是采用最普通的规则:两人轮流操作,每次选择一堆石子,取掉不为0的石子数,没法操作者失败。法法塔要做的是这样的:

我们现在定义一个区间的弱菜值:表示如果法法塔先取石子,而且法法塔第一步取的石子规定是最右边的那堆的话,为了必胜,第一步需要取的石子数。如果没法获胜的话,那么弱菜值就是-1。

法法塔要选择一个区间[l,r],使得r为wyl8899给定的某个数,l属于[a,b],a,b也是wyl8899给定的,要求这个区间的弱菜值是满足前面的条件中最大。请给出这个最大的弱菜值。

如果最大弱菜值不为-1,法法塔就会马上取走该区间最右端的石子堆最大弱菜值数量的石子。

Input

第一行一个正整数n,描述了石子的堆数,接下来一行n个数,描述每堆石子的数目。

接下来一行m,表示将进行要进行m次游戏,每次游戏由三个值刻画,r,a,b。r表示被选定的右端点,[a,b]表示选择的区间的左端点的范围

Output

对于每个询问输出最大的弱菜值。

Sample Input

输入1:
12
662 477 125 483 17 560 232 59 176 928 807 659
5
5 2 5
4 4 4
2 1 2
6 4 6
6 2 3

输入2:
7
230 883 456 1020 966 899 610
2
7 1 2
2 1 2

输入3:
11
392 808 14 71 393 79 11 74 713 232 142
5
8 3 8
9 5 9
3 1 1
8 2 8
7 4 6

Sample Output

输出1:
17
483
477
560
-1

输出2:
352
883

输出3:
74
713
-1
-1
-1

Data Constraint

n<=100000,m<=10000,每堆的石子数<=1000。

分析

取火柴游戏,发现就是要求s[r-1]^s[x] (a<=x<=b)最小

s是异或前缀和,s[r-1]是固定的,求s[x]

那么我们看到异或的题目可以考虑trie,可是区间询问的问题一颗trie怎么搞?

那么我们利用分块加trie可以随便切完这题,在trie上找答案时可以从高位开始找异或值为0贪心,正确性显然

然鹅我打的是n^2暴力也过了

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
const int N=5e5+10;
int n,m,s[N];int main() { scanf("%d",&n);for (int i=1;i<=n;i++) scanf("%d",&s[i]);scanf("%d",&m);for (int i=1;i<=m;i++) {int R,A,B,k,ans=0;scanf("%d%d%d",&R,&A,&B);if (s[R]==0) {printf("-1\n");continue;}if (R==B) {printf("%d\n",s[R]);s[R]=0;continue;}k=0;for (int j=R-1;j>=A;j--) {k^=s[j];if (B>=j&&s[R]>=k) ans=max(ans,s[R]-k);if (ans==s[R]) break;}if (ans==0) printf("-1\n");else printf("%d\n",ans);s[R]-=ans;}
}

View Code

转载于:https://www.cnblogs.com/mastervan/p/11166724.html

[博弈论]JZOJ 3339 wyl8899和法法塔的游戏相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. LTE - PUCCH Format2
  2. 数字图像基本处理算法小结
  3. ev3pid巡线_PID算法巡线
  4. Servlet、Filter、Listener总结
  5. java nio 追加写文件_Java NIO在文件末尾追加数据
  6. 一图速览 | DTCC 2021大会,阿里云数据库技术大咖都聊了些什么?
  7. 教你如何用node.js开发微信公众号(一)
  8. 实现option上下移动_Perona-Malik方程(各向同性非线性扩散实现图像滤波)
  9. mysql 定时脚本_MySQL定时执行脚本(计划任务)命令实例
  10. Apache seaTunnel的本地启动
  11. SAP Cloud Platform mobile service的使用过程
  12. Codeforces Round #645 (Div. 2)(AB)
  13. debian 9.4 安装教程 linux系统debian9.4图文详细安装步骤
  14. (36)FPGA打N拍设计(第8天)
  15. Webb.WAVE项目开发体会与心得
  16. JAVA必备——Struts
  17. 启动react-native报错 Unrecognized font family 'Ionicons'
  18. 利用逆矩阵解线性方程组_经典Jacobi方法用于求解矩阵特征值
  19. Gossip in Cassandra
  20. 《白夜行》读后感:白夜行走,暗中羁绊

热门文章

  1. 高德地图—js.api
  2. win10修改本地密钥服务器,win10密钥服务器
  3. ads的designguide打不开报错
  4. php 与 html 的混合编程
  5. Java打印一个正三角形
  6. 网盘目录搜索系统源码+搭建教程
  7. 把redis部署到百度BAE上时的注意点
  8. 安装liunx出现Entering emergency mode
  9. FIL会不会涨,至联云教你看这三点就知道
  10. 读《我的身体里早已落叶纷飞》