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

正题


题目大意

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

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


解题思路

首先这是一个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 ar1=xx≤arx\leq a_rxar那么我们可以从ara_rar中取走ar−xa_r-xarx个石头然后使得ar=xa_r=xar=x那么这样轮到后手开始时所以的异或起来就为0了。

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

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

  1. b=rb=rb=r时直接让lllrrr,这个十分显然,因为要使异或和最小所以自己异或自己就是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");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sentinel(十九)之主流框架的适配

转载自 主流框架的适配 注&#xff1a;适配模块仅提供相应适配功能&#xff0c;若希望接入 Sentinel 控制台&#xff0c;请务必参考 Sentinel 控制台文档。 云原生微服务体系 Spring Cloud Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。Sentinel 与 Spring …

利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏

【先上一张效果图】&#xff1a;一、原理&#xff1a;其实原理很简单&#xff1a;1.手机投屏到电脑&#xff1b;2.截取投屏画面的题目部分&#xff0c;进行识别&#xff0c;得到题目和三个答案&#xff1b;3.将答案按照一定的算法&#xff0c;进行搜索&#xff0c;得出推荐答案…

Sentinel(二十)之Envoy RLS Token Server

转载自 Envoy RLS Token Server Sentinel 提供了一个 Envoy Global Rate Limiting gRPC Service 的实现 sentinel-cluster-server-envoy-rls&#xff0c;借助集群限流 token server 来为 Envoy 服务网格提供集群流量控制的能力。 Note: You can refer to here for the Englis…

欢乐纪中某A组赛【2019.7.9】

前言 我好菜我好菜我好菜我好菜我好菜 我好菜我好菜我好菜我好菜我好菜 我好菜我好菜我好菜我好菜我好菜 我好菜我好菜我好菜我好菜我好菜 我好菜我好菜我好菜我好菜我好菜 我好菜我好菜我好菜我好菜我好菜 心态大崩 ZYCdalaoZYCdalaoZYCdalao去AKBAK\ BAK B组了所以应该是我垫…

g4e基础篇#5 创建分支和保存代码

使用版本控制系统最常见的工作流程就是修改代码&#xff0c;保存代码&#xff0c;共享代码。Git提供了一个简单的3步工作流&#xff0c;让你方便的完成这些操作。1. 新建工作分支2. 提交更改3. 推送分支到中心存储库与团队成员共享Git 工作流按照以上3步操作&#xff0c;我们就…

P3952-时间复杂度【模拟】

正题 题目链接:https://www.luogu.org/problemnew/show/P3952 题目大意 比较复杂就直接给截图了 解题思路 开一个栈来维护序列&#xff0c;因为它保证合法的程序中一个变量不会相互嵌套所以就拿变量的字母当做每个循环的下标即可。然后对于输入的x,yx,yx,y有五种情况 xN,yN…

Sentinel(二十一)之Sentinel Dashboard控制台日志路径设置

一、sentinel-dashboard配置文件 配置文件内容&#xff1a;Sentinel/sentinel-dashboard/src/main/resources/application.properties #spring settings spring.http.encoding.forcetrue spring.http.encoding.charsetUTF-8 spring.http.encoding.enabledtrue#cookie name se…

一步步部署基于Windows系统的Jenkins持续集成环境

如题&#xff1a;本文将介绍如何在Windows环境下运用Jenkins部署持续集成环境。之所以写本文&#xff0c;是因为在最近工作当中&#xff0c;学习使用Jenkins时&#xff0c;确实遇到了一些问题&#xff0c;而大多数教程文档都是基于Mac或是Linux平台。为此很是头疼&#xff0c;经…

Sentinel(二十二)之使用Nacos存储规则

转载自 Spring Cloud Alibaba基础教程&#xff1a;Sentinel使用Nacos存储规则 通过上一篇《使用Sentinel实现接口限流》的介绍&#xff0c;相信大家对Sentinel已经有了初步的认识。在Spring Cloud Alibaba的整合封装之下&#xff0c;接口限流这件事情可以非常轻易的整合到我们…

jzoj3347,bzoj3257-[NOI2013模拟]树的难题【树形dp】

正题 BZOJBZOJBZOJ题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id3257 题目大意 一棵树上的节点有333种颜色&#xff0c;有边权。 选择一些边割掉使得森林中每棵树只有一个白点或没有黑点。 求割掉的边的最小值。 解题思路 定义fi,statef_{i,state}fi,state​…

vue 开发2017年变化回顾及2018年展望

vue.js 变化从 github 的发布记录我们可以看到2017年 vue.js 的第一个发布为 v2.1.9&#xff0c;最后一个为 v2.5.13&#xff0c;主要发布小版本 2.2~2.5。这些发布提升了vue 与 TypeScript 的结合、改进了对服务端渲染&#xff08;SSR&#xff09;和 native 渲染的支持、提供了…

Sentinel(二十三)之使用Apollo存储规则

转载自 Spring Cloud Alibaba基础教程&#xff1a;Sentinel使用Apollo存储规则 上一篇我们介绍了如何通过Nacos的配置功能来存储限流规则。Apollo是国内用户非常多的配置中心&#xff0c;所以&#xff0c;今天我们继续说说Spring Cloud Alibaba Sentinel中如何将流控规则存储…

jzoj3348,bzoj3258-秘密任务【最短路,网络流最小割】

正题 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id3258 题目大意 一张无向图&#xff0c;路有边权&#xff0c;在想要封锁某条路可以在该路两边的任意一点设置检查站(一个站只能封锁一条路)&#xff0c;在iii点建立一个检查站要AiA_iAi​元。 求最少的费用封…

Quartz.Net分布式任务管理平台

前言&#xff1a;我相信大多数人公司的业务上都有定时任务这么个功能&#xff0c;我们公司也不例外&#xff0c;刚来公司的时候使用Quartz.Net为我们组做了第一个任务&#xff0c;大致流程是&#xff1a;新建一个控制台程序&#xff0c;引用需要的程序集&#xff0c;Execute方法…

Sentinel(二十四)之Sentinel Dashboard中修改规则同步到ZooKeeper

转载自 Springboot使用Sentinel限流&#xff0c;集成zookeeper完成规则的持久化 上一篇简单介绍了sentinel限流的基本配置和使用&#xff0c;这一篇我们来稍微深入一点&#xff0c;看看如何将zookeeper继承进来&#xff0c;用以保存添加的流控规则。 上一篇中我们启动了dash…

微软Azure AspNetCore微服务实战第2期(内附PPT下载)

2018年1月28日&#xff0c;虽然上海的大雪在城区已经见不到踪影&#xff0c;但还是很冷。不过天气再冷&#xff0c;也阻止不了小伙伴参加活动的热情。感谢王振&#xff0c;苏老师以及微软Azure API Management的产品经理Alvin&#xff0c;给大家带来微服务实战&#xff0c;企业…

jzoj3379-查询【主席树】

正题 题目大意 给出一个有序集合AAA&#xff0c;定义Al,rA_{l,r}Al,r​表示集合内l∼rl\sim rl∼r这个范围内的数。 定义加法ABABAB表示两个集合中的所有元素(不去重)。 现在询问&#xff0c;每次询问ki,pik_i,p_iki​,pi​然后给出kik_iki​个区间[lj,rj][l_j,r_j][lj​,rj…

Sentinel(二十五)之Sentinel Dashboard同步Apollo存储规则

转载自 Spring Cloud Alibaba基础教程&#xff1a;Sentinel Dashboard同步Apollo存储规则 在之前的两篇教程中我们分别介绍了如何将Sentinel的限流规则存储到Nacos和Apollo中。同时&#xff0c;在文末的思考中&#xff0c;我都指出了这两套整合方案都存在一个不足之处&#…

为什么选择.NETCore?

为什么选择.NETCore&#xff1f;在开展话题之前先出一张ASP.NETCore VS Node.js的性能对比图 ASP.NET Core VS node.js&#xff1a;继续正文&#xff1a;学习新的开发框架是一项巨大的投资。您需要学习如何在新框架中编写&#xff0c;构建&#xff0c;测试&#xff0c;部署…

欢乐纪中某A组赛【2019.7.10】

前言 好烦我最后写对了T1T1T1的808080分结果交错题导致T2T2T2的404040分没了T1T1T1也没拿多那些分。 话说好像ZDYZDYZDY比我还惨 成绩 这里还是按OJOJOJ上的分数排名 JJJ表示初中&#xff0c;HHH表示高中后面加的是几年级 RankRankRankPersonPersonPersonScoreScoreScoreAAA…