[luogu5387]人形演舞
先对每一个求sg函数,暴力复杂度为$o(m^{2})$
取$k$满足$2^{k}\le x<2^{k+1}$(即$x$二进制下的最高位),考虑$y$与$2^{k}$的关系
1.若$1\le y<2^{k}$,那么必然有$1\le y\le x$,因此仅要求$0\le (x\oplus y)<x$
由于$y$的第$k$位为0且$x$的第$k$位为1,因此$2^{k}\le (x\oplus y)<x$,同时对于其中任意一个取值,根据异或的可逆性,都可以得到
2.若$2^{k}\le y\le x$,类似的必然有$0\le (x\oplus y)\le x-2^{k}$,同样其中任意一个取值都可以得到
换言之,$x$的后继的范围为$[0,x-2^{k}]\cup[2^{k},x)$,归纳$sg(x)=x-2^{k}+1$,则$sg(2^{k})=1$(其后继只有$sg(0)=0$),然后$sg(x)=mex(sg(0),sg([2^{k},x]))\ge x-2^{k}+1$
同时,由于$sg(x)\le x$,因此前面半段不能增加答案,即得到结论
进一步的,即求$\sum_{\bigoplus_{i=1}^{n}sg(a_{i})=0}1$,令$f_{n}(x)=\sum_{i=0}^{\infty}(\sum_{\bigoplus_{j=1}^{n}sg(a_{j})=i}1)x^{i}$,定义乘法为两式的异或卷积,即有$f_{n}(x)=f_{n-1}(x)f_{1}(x)=f^{n}_{1}(x)$,用快速幂+FWT计算,时间复杂度为$o(m\log_{2}n\log_{2}m)$
然后注意到FWT和IFWT的执行,在快速幂中存在重复,因此只需要在最开始和结尾执行一次,时间复杂度降为$o(m(\log_{2}mod+\log_{2}m))$,即可通过

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define mod 998244353
4 int n,ans,f[2000005];
5 long long m;
6 int main(){
7 scanf("%lld%d",&m,&n);
8 m%=mod-1;
9 for(int i=0;i<20;i++)
10 for(int j=(1<<i);j<=min((1<<i+1)-1,n);j++)f[j-(1<<i)+1]++;
11 for(int i=0;i<20;i++)
12 for(int j=0;j<(1<<20);j++)
13 if (j&(1<<i)){
14 int x=f[j],y=f[(j^(1<<i))];
15 f[(j^(1<<i))]=(x+y)%mod;
16 f[j]=(y+mod-x)%mod;
17 }
18 for(int i=0;i<(1<<20);i++){
19 int x=f[i],y=m;
20 f[i]=1;
21 while (y){
22 if (y&1)f[i]=1LL*f[i]*x%mod;
23 x=1LL*x*x%mod;
24 y>>=1;
25 }
26 }
27 for(int i=0;i<20;i++)
28 for(int j=0;j<(1<<20);j++)
29 if (j&(1<<i)){
30 int x=f[j],y=f[(j^(1<<i))];
31 f[(j^(1<<i))]=1LL*(mod+1)/2*(x+y)%mod;
32 f[j]=1LL*(mod+1)/2*(y+mod-x)%mod;
33 }
34 for(int i=1;i<(1<<20);i++)ans=(ans+f[i])%mod;
35 printf("%d",ans);
36 }
[luogu5387]人形演舞的更多相关文章
- 天天坐在电脑面前,小心抑郁!来自一个人的旅行<自导自演>
画图画累了?写代码写累了?何不放松一下呢. 一望无际.亲近自然.忘乎所以.放空自我! 一个人的旅行, GoPro拍摄,后期采用FCPX.记录梦想, 自导自演.一个人去了很多地方, 认识和很多当地人,交 ...
- 从匿名方法到 Lambda 表达式的推演过程
Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数. 通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数. 以上是msdn官网对Lambda 表达式 ...
- tyvj1191 迎春舞会之三人组舞
背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞 描述 n个人选出3*m人,排成m组,每组3人. 站的队形——较矮的2个人站两侧,最高的站中间. 从对称学角度来欣赏, ...
- 从下往上看--新皮层资料的读后感 第三部分 70年前的逆向推演- 从NN到ANN
第三部分 NN-ANN 70年前的逆向推演 从这部分开始,调整一下视角主要学习神经网络算法,将其与生物神经网络进行横向的比较,以窥探一二. 现在基于NN的AI应用几乎是满地都是,效果也不错,这种貌似神 ...
- OpenCV人形检测Hog
#include "iostream" #include "queue" using namespace std; #include "opencv2 ...
- C语言 数组做函数参数退化为指针的技术推演
//数组做函数参数退化为指针的技术推演 #include<stdio.h> #include<stdlib.h> #include<string.h> //一维数组 ...
- Web Design:欧美人形剪影的404界面
项目需求,必须得写个404界面,比较愁,因为网站属于那种电商+艺术品拍卖的网站,404界面不太好设计 很多时候网站直接代码报错输出404,不过设计过的404也有好处,比如改进用户体验.增强互动性之类的 ...
- Java 炫舞按键功能 DancingPlay (整理)
/** * Java 炫舞按键功能 DancingPlay (整理) * 2016-1-2 深圳 南山平山村 曾剑锋 * * 设计声明: * 1.本次设计是模仿QQ炫舞类游戏,当图标到红色的检测区域时 ...
- [转] 与调试器共舞 - LLDB 的华尔兹
你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThisThing); 或者跳过一个函数调用来简化程序的行为? NSNu ...
随机推荐
- 《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)
1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某 ...
- oracle基础安全配置
1.oracle中用户密码复杂度配置 1)查看参数 select limit from dba_profiles where resource_name='PASSWORD_VERIFY_FUNCTI ...
- Go语言核心36讲(Go语言基础知识四)--学习笔记
04 | 程序实体的那些事儿(上) 还记得吗?Go 语言中的程序实体包括变量.常量.函数.结构体和接口. Go 语言是静态类型的编程语言,所以我们在声明变量或常量的时候,都需要指定它们的类型,或者给予 ...
- java语言程序设计与数据结构(基础篇)第二章答案
答案为本人自己求解,若有错误,还望海涵并及时告知.如有雷同,纯属巧合. 2.1 import java.util.Scanner; public class Welcome { public stat ...
- CF193D Two Segments (线段树+dp)(外加两个扩展题)
大概算是个系列整理 (最强版是模拟赛原题)) 首先,我们先来看这个题目. QWQ一开始是毫无头绪,除了枚举就是枚举 首先,我们可以枚举一个右端点,然后算一下当前右端点的答案 我们令\(f[l,r]\) ...
- Typora配置双击图片放大功能
在Typora中,默认没有点击图片放大功能,本文就教大家如何配置该功能. 我的环境版本 Typora版本:0.11.13 LightBox版本:2.11.3 下载LightBox 可以从Github下 ...
- Spring框架访问数据库的两种方式的小案例
1.1 以Xml的方式访问数据库的案例 要以xml的方式访问数据库需要用到JdbcTemplate ,因为 JdbcTemplate(jdbc的模板对象)在Spring 中提供了一个可以操作数据库的对 ...
- 分布式/微服务必配APM系统,SkyWalking让你不迷路
前言 如今分布式.微服务盛行,面对拆分服务比较多的系统,如果线上出现异常,需要快速定位到异常服务节点,假如还用传统的方式排查肯定效率是极低的,因为服务之间的各种通信会让定位更加繁琐:所以就急需一个分布 ...
- 深度剖析Redis6的持久化机制(大量图片说明,简洁易懂)
Redis的强劲性能很大程度上是由于它所有的数据都存储在内存中,当然如果redis重启或者服务器故障导致redis重启,所有存储在内存中的数据就会丢失.但是在某些情况下,我们希望Redis在重启后能够 ...
- MySQL:提高笔记-4
MySQL:提高笔记-4 学完基础的语法后,进一步对 MySQL 进行学习,前几篇为: MySQL:提高笔记-1 MySQL:提高笔记-2 MySQL:提高笔记-3 MySQL:提高笔记-4,本文 说 ...