题解

简单分析一下就知道\(\lfloor \frac{N}{i} \rfloor\)相同的\(i\)的\(sg\)函数相同

所以我们只要算\(\sqrt{n}\)个\(sg\)函数就好

算每一个\(sg(m)\)的时候我们可以通过把这个数再拆成\(\sqrt{m}\)段来计算\(sg\)值

复杂度用积分分析是\(n^{frac{3}{4}}\)

代码

#include <bits/stdc++.h>
#define fi first
#define se second
#define pii pair<int,int>
#define mp make_pair
#define pb push_back
#define enter putchar('\n')
#define space putchar(' ')
#define MAXN 100005
#define mo 994711
//#define ivorysi
using namespace std;
typedef long long int64;
typedef long double db;
typedef unsigned int u32;
template<class T>
void read(T &res) {
res = 0;char c = getchar();T f = 1;
while(c < '0' || c > '9') {
if(c == '-') f = -1;
c = getchar();
}
while(c >= '0' && c <= '9') {
res = res * 10 + c - '0';
c = getchar();
}
res *= f;
}
template<class T>
void out(T x) {
if(x < 0) {putchar('-');x = -x;}
if(x >= 10) out(x / 10);
putchar('0' + x % 10);
}
struct node {
int x,val,next;
}E[1000005];
int head[mo + 5],sumE,N;
int L[1000005],cnt,tmp[100005],tot;
void add(int u,int x) {
E[++sumE].x = x;
E[sumE].next = head[u];
head[u] = sumE;
}
void Insert(int x,int v) {
for(int i = head[x % mo] ; i ; i = E[i].next) {
if(E[i].x == x) {E[i].val = v;return;}
}
}
int Query(int x) {
for(int i = head[x % mo] ; i ; i = E[i].next) {
if(E[i].x == x) {return E[i].val;}
}
}
void Init() {
read(N);
for(int i = 1 ; i <= N ; ++i) {
int r = N / (N / i);
L[++cnt] = N / i;
add(L[cnt] % mo,L[cnt]);
i = r;
}
Insert(1,1);
for(int i = cnt - 1 ; i >= 1 ; --i) {
tot = 0;int pre = 0;
tmp[++tot] = 0;
for(int j = 2 ; j <= L[i] ; ++j) {
int r = L[i] / (L[i] / j);
int x = Query(L[i] / j);
tmp[++tot] = x ^ pre;
if((r - j + 1) & 1) pre ^= x;
j = r;
}
sort(tmp + 1,tmp + tot + 1);
tot = unique(tmp + 1,tmp + tot + 1) - tmp - 1;
int p = 0,pos = 1;
while(tmp[pos] == p) {++p;++pos;}
Insert(L[i],p);
}
}
void Solve() {
int K,W;
read(K);
while(K--) {
read(W);
int ans = 0,a;
for(int i = 1 ; i <= W ; ++i) {
read(a);
ans ^= Query(N / a);
}
if(!ans) puts("No");
else puts("Yes");
}
}
int main() {
#ifdef ivorysi
freopen("f1.in","r",stdin);
#endif
Init();
Solve();
return 0;
}

【LOJ】#2126. 「HAOI2015」数组游戏的更多相关文章

  1. loj#2128. 「HAOI2015」数字串拆分 矩阵乘法

    目录 题目链接 题解 代码 题目链接 loj#2128. 「HAOI2015」数字串拆分 题解 \(f(s)\)对于\(f(i) = \sum_{j = i - m}^{i - 1}f(j)\) 这个 ...

  2. LOJ#2127「HAOI2015」按位或

    用$ Min-Max$容斥之后要推的东西少了好多 无耻的用实数快读抢了BZOJ.Luogu.LOJ三个$ OJ$的Rank 1 即将update:被STO TXC OTZ超了QAQ 题意:集合$ [0 ...

  3. @loj - 2004@ 「SDOI2017」硬币游戏

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数 ...

  4. LOJ #6436. 「PKUSC2018」神仙的游戏(字符串+NTT)

    题面 LOJ #6436. 「PKUSC2018」神仙的游戏 题解 参考 yyb 的口中的长郡最强选手 租酥雨大佬的博客 ... 一开始以为 通配符匹配 就是类似于 BZOJ 4259: 残缺的字符串 ...

  5. Loj #3056. 「HNOI2019」多边形

    Loj #3056. 「HNOI2019」多边形 小 R 与小 W 在玩游戏. 他们有一个边数为 \(n\) 的凸多边形,其顶点沿逆时针方向标号依次为 \(1,2,3, \ldots , n\).最开 ...

  6. Loj #2554. 「CTSC2018」青蕈领主

    Loj #2554. 「CTSC2018」青蕈领主 题目描述 "也许,我的生命也已经如同风中残烛了吧."小绿如是说. 小绿同学因为微积分这门课,对"连续"这一概 ...

  7. Loj #2553. 「CTSC2018」暴力写挂

    Loj #2553. 「CTSC2018」暴力写挂 题目描述 temporaryDO 是一个很菜的 OIer .在 4 月,他在省队选拔赛的考场上见到了<林克卡特树>一题,其中 \(k = ...

  8. Loj #2719. 「NOI2018」冒泡排序

    Loj #2719. 「NOI2018」冒泡排序 题目描述 最近,小 S 对冒泡排序产生了浓厚的兴趣.为了问题简单,小 S 只研究对 *\(1\) 到 \(n\) 的排列*的冒泡排序. 下面是对冒泡排 ...

  9. Loj #3102. 「JSOI2019」神经网络

    Loj #3102. 「JSOI2019」神经网络 题目背景 火星探险队发现,火星人的思维方式与人类非常不同,是因为他们拥有与人类很不一样的神经网络结构.为了更好地理解火星人的行为模式,JYY 对小镇 ...

随机推荐

  1. VMXNET3 vs E1000E and E1000

    VMXNET3 vs E1000E and E1000 用户为什么要从E1000调整为VMXNET3,理由如下: E1000是千兆网路卡,而VMXNET3是万兆网路卡: E1000的性能相对较低,而V ...

  2. Go语言?Docker?对新技术怎么看?

    对于 Go 语言和 Docker 这两种技术,在国内的技术圈中有相当大的一部分人和群体还在持观望或是不信任的态度.所以,我想写这篇文章,从两个方面来论述一下我的观点和看法. 上个月,作为 Go 语言的 ...

  3. NOIP2018 Day0 回首向来萧瑟处,也无风雨也无晴

    回首向来萧瑟处,也无风雨也无晴 NOIP2018 Day0 感想  by HGOI ljc20020730 Back ground: /* HGOI 陈功杰让我们写初赛总结?! (考这么烂还要写总结? ...

  4. HDU 4303 Hourai Jeweled 解题报告

    HDU 4303 Hourai Jeweled 解题报告 评测地址: http://acm.hdu.edu.cn/showproblem.php?pid=4303 评测地址: https://xoj. ...

  5. PHP使用serialize和json_encode序列化数据并通过redis缓存文件和$GLOGALS缓存资源对象

    PHP常用缓存方式:第一种,把需要缓存的数据进行处理,形成PHP可以直接执行的文件.在需要缓存数据的时候,通过include方式引入,并使用.第二种,把需要的数据通过serialize函数序列化后直接 ...

  6. 「Django」contenttypes基本用法

    当一张表和多个表ForeignKey关联,并且多个FK中只能选择其中一个或其中n个时,可以利用contenttypes,只需定义三个字段就搞定! contenttypes 是Django内置的一个应用 ...

  7. 压力测试以及编译安装httpd2.4

    压力测试以及编译安装httpd2.4 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用 deflate_module模块压缩页面优化传输速度 我们的httpd软件自带的有一个 ...

  8. SQL存储过程例子

    存储过程呢,学校里学习的都是简单的.这里是我在工作的时候写的存储过程,贴出来,其中公司相关我都XXX代替了 (注:这个例子可以算是动态SQL的例子了,写死的是静态SQL,这个很灵活的传入参数的是动态S ...

  9. 最长回文子串问题-Manacher算法

    转:http://blog.csdn.net/dyx404514/article/details/42061017 Manacher算法 算法总结第三弹 manacher算法,前面讲了两个字符串相算法 ...

  10. SQL记录-PLSQL游标

    PL/SQL游标 Oracle会创建一个存储区域,被称为上下文区域,用于处理SQL语句,其中包含需要处理的语句,例如所有的信息,行数处理,等等. 游标是指向这一上下文的区域. PL/SQL通过控制光标 ...