ZOJ3591_Nim
题目的意思是给你n个ai,有多少种不同的连续段使得用该段数中所有的数字玩Nim游戏的先手必胜。
首先根据博弈论的知识,我们知道,要使先手必胜,那么只要保证所有的数的异或值不为0就可以了。
这个题目,给的ai的求法给了我很大的误导,我一开始以为要从哪里入手来突破这个题目。结果。。。。。。。深坑啊。
是这样来考虑的,我们直接模拟,分别得出所有的ai的值,然后用一个数字fi表示a1到ai连续的数的异或值。
这样要求异或不为0的情况,我们只要求出所有值为0的情况,然后将所有的情况减去这些情况就可以了。
对于求所有值为0的情况,有两种可能:
一、f[i]=0,说明从1到i的数所有的数的异或值就为0,这就是一个满足条件的段哦。
二、存在1<=i<j<=n,f[i]=f[j],这说明i+1到j这一段的所有的异或值为0(异或的性质哦),这也是一个满足条件的段。
有了上面的两点,我们就可以进行统计了。
统计有两种方法:
一、排个序,然后对于值相同的两两组合就好了。
二、用map哈希的方法记录每一个数出现了多少种情况,然后组合一下就好了。
#include <iostream>
#include <cstdio>
#include <map>
#include <algorithm>
#include <cstring>
#define ll long long
#define maxn 100100
using namespace std; int n,m,k,a[maxn],S,W,t;
ll ans,tot; int main()
{
cin>>t;
while (t--)
{
scanf("%d%d%d",&n,&S,&W);
ans=(ll)n*(n+)/,tot=;
int g = S;
for (int i=; i<=n; i++)
{
a[i] = g;
if( a[i] == ) { a[i] = g = W; }
if( g% == ) { g = (g/); }
else { g = (g/) ^ W; }
}
k=;
for (int i=; i<=n; i++)
{
k^=a[i];
a[i]=k;
}
sort(a+,a++n);
k=,a[n+]=a[]=-;
for (int i=; i<=n+; i++)
{
if (a[i]==a[i-]) k++;
else
{
if (a[i-]==) tot+=k;
tot+=(ll)k*(k-)/;
k=;
}
}
printf("%lld\n",ans-tot);
}
return ;
}
ZOJ3591_Nim的更多相关文章
随机推荐
- 20145226夏艺华 Exp6 信息搜集与漏洞扫描
20145226夏艺华 Exp6 信息搜集与漏洞扫描 基础问题回答 哪些组织负责DNS,IP的管理? · 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.DNS和IP地址管理 ...
- 单线程的redis为什么吞吐量可以这么大
原文:单线程的redis为什么吞吐量可以这么大 一.Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快: 2.redis是单线程的,省去了很多上下文切换线程的时间: 3.r ...
- Spring SimpleJdbcOperations 批量更新
1.控制台代码 import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowM ...
- rsync + inotify 数据实时同步
一.rsync介绍 rsync英文全称为Remote synchronization,从软件的名称就可以看出来,Rsync具有可是本地和远程两台主机之间的数据快速复制同步镜像.远程备份的功能,这个功能 ...
- bzoj1861 书架
bzoj1861 书架 原题链接 神题... 先吐槽洛谷的样例 10 10 1 3 2 7 5 8 10 4 9 6 Query 3 Top 5 Ask 6 Bottom 3 Ask 3 Top 6 ...
- 【JUC源码解析】ReentrantReadWriteLock
简介 ReentrantReadWriteLock, 可重入读写锁,包括公平锁和非公平锁,相比较公平锁而言,非公平锁有更好的吞吐量,但可能会出现队列里的线程无限期地推迟一个或多个读线程或写线程的情况, ...
- 微服务介绍及Asp.net Core实战项目系列之微服务介绍
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 一.微服务选型 在做微服务架构的技术选型的时候,我们以“无侵入”和“社区活跃”为主要的考量点,将来升级为原子服务架构.量子服务架构 ...
- XAF-物料管理信息工作日志
前段时间已经开始了第一阶段验收了,客户方并未把重点放在业务流程上面,一直在调整一些界面问题.有点小纠结. 今天要调一下菜单位置. 没修改时,是这样的: 到了列表界面,会多一个全文检索出来. 后来,客户 ...
- symfony注册Twig模板中使用自定义PHP方法
// 注:只是在此做下记录,有兴趣的可以参考,不做实际教程文档// 官方文档,https://symfony.com/doc/2.8/templating/twig_extension.html// ...
- TensorFlow深度学习实战---图像数据处理
图像的亮度.对比度等属性对图像的影响非常大,这些因素都会影响最后的识别结构.当然,复杂的预处理过程可能会导致训练效率的下降(利用TensorFlow中多线程处理输入数据的解决方案). 同一不同的原始数 ...