求出序列的生成函数后,倍增FWT

  1. #include<cstdio>
  2.  
  3. using namespace std;
  4.  
  5. #define N 2048
  6.  
  7. const int mod=1e9+;
  8.  
  9. int inv;
  10.  
  11. int f[N+];
  12.  
  13. int Pow(int a,int b)
  14. {
  15. int res=;
  16. for(;b;a=1LL*a*a%mod,b>>=)
  17. if(b&) res=1LL*res*a%mod;
  18. return res;
  19. }
  20.  
  21. void FWT(int *a,int n)
  22. {
  23. int x,y;
  24. for(int d=;d<n;d<<=)
  25. for(int m=d<<,i=;i<n;i+=m)
  26. for(int j=;j<d;++j)
  27. {
  28. x=a[i+j]; y=a[i+j+d];
  29. a[i+j]=x+y; a[i+j+d]=x-y;
  30. a[i+j]-=a[i+j]>=mod ? mod : ;
  31. a[i+j+d]+=a[i+j+d]< ? mod : ;
  32. }
  33. }
  34.  
  35. void IFWT(int *a,int n)
  36. {
  37. int x,y;
  38. for(int d=;d<n;d<<=)
  39. for(int m=d<<,i=;i<n;i+=m)
  40. for(int j=;j<d;++j)
  41. {
  42. x=a[i+j]; y=a[i+j+d];
  43. a[i+j]=1LL*(x+y)*inv%mod; a[i+j+d]=1LL*(x-y+mod)%mod*inv%mod;
  44. }
  45. }
  46.  
  47. int main()
  48. {
  49. //freopen("xor.in","r",stdin);
  50. //freopen("xor.out","w",stdout);
  51. int n,m,L,R;
  52. scanf("%d%d%d%d",&n,&m,&L,&R);
  53. n=*n+;
  54. inv=Pow(,mod-);
  55. int len;
  56. int ans=;
  57. for(int x=L;x<=R;++x)
  58. {
  59. len=;
  60. while(len<=x+m) len<<=;
  61. for(int i=;i<x;++i) f[i]=;
  62. for(int i=x;i<=x+m;++i) f[i]=;
  63. for(int i=x+m+;i<len;++i) f[i]=;
  64. FWT(f,len);
  65. for(int i=;i<len;++i) f[i]=Pow(f[i],n);
  66. IFWT(f,len);
  67. ans+=f[];
  68. ans-=ans>=mod ? mod : ;
  69. }
  70. printf("%d",ans);
  71. }

2016vijos 1-3 兔子的晚会(生成函数+倍增FWT)的更多相关文章

  1. 兔子的晚会 2016Vijos省选集训 day1

    兔子的晚会 (xor.c/pas/cpp)============================= 很久很久之前,兔子王国里居住着一群兔子.每到新年,兔子国王和他的守卫总是去现场参加晚会来欢庆新年. ...

  2. bzoj千题计划308:bzoj4589: Hard Nim(倍增FWT+生成函数)

    https://www.lydsy.com/JudgeOnline/problem.php?id=4589 n*m*m 做法 dp[i][j] 前i堆石子,异或和为j的方案数 第一重循环可以矩阵快速幂 ...

  3. 8.7 正睿暑期集训营 Day4

    目录 2018.8.7 正睿暑期集训营 Day4 A 世界杯(贪心) B 数组(线段树) C 淘汰赛 考试代码 A B C 2018.8.7 正睿暑期集训营 Day4 时间:5h(实际) 期望得分:. ...

  4. 2016vijos 1-1 兔子的字符串(后缀数组 + 二分 + 哈希)

    题意: 给出一个字符串,至多将其划分为n部分,每一部分取出字典序最大的子串ci,最小化 最大的ci 先看一个简化版的问题: 给一个串s,再给一个s的子串t,问能否通过将串划分为k个部分,使t成为划分后 ...

  5. Bzoj4818:生成函数 快速幂

    转来的题面:首先这题显然补集转化,就是用全部方案减去不含任何质数的方案.然后怎么做呢?考虑m比较小,我们能大力把<=m的质数全都筛出来.发现n很大,要么倍增要么快速幂......发现p相当小,所 ...

  6. 数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群)

    数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群) 因为不会做目录所以请善用ctrl+F 本来想的是笔记之类的,写着写着就变成了资源整理 一些有的 ...

  7. ZROI 暑期高端峰会 A班 Day4 生成函数

    一般生成函数 很普及组,不讲了 生成函数是一种形式幂级数,也就是我们只关心系数,不关心未知数具体的值. 比如 \(\sum\limits_{i\ge 0}x^i=\frac{1}{1-x}\).虽然只 ...

  8. 2019暑期金华集训 Day5 生成函数

    自闭集训 Day5 生成函数 一般生成函数 无脑地把序列变成多项式: \[ \{a_i\}\rightarrow A(x)=\sum_{n} a_nx^n \] 形式幂级数 生成函数是一种形式幂级数. ...

  9. AT2164-[AGC006C]Rabbit Exercise【差分,倍增,数学期望】

    正题 题目链接:https://www.luogu.com.cn/problem/AT2164 题目大意 \(n\)只兔子编号为\(1\sim n\),第\(i\)只在坐标轴\(x_i\)处.然后\( ...

随机推荐

  1. 【XSY2808】董先生的休闲方案 组合数学

    题目描述 有\(n\)个方案,编号为\(1\ldots n\). 最开始你不知道每个方案的编号. 你要按顺序提出这些方案. 每一个时刻你要做以下事情: 如果你阅读过下一个方案,就提出这个方案. 否则随 ...

  2. 支持markwon写ppt的工具marp-调研

    1.需求 使用markdown写ppt 支持大部分markdown语法,含高亮.公式及表格等 支持转为html,在浏览器中展示 2.调研 符合条件的工具:marp 用法参考 Marp之简单编写PPT格 ...

  3. python3 hashlib模块

    hashlib是一个加密模块,可以将明文加密为密文: md5,sha加密:过程不可逆转.

  4. luogu2282/bzoj1219 历史年份 (dp+hash+二分+线段树)

    luogu1415 拆分数列的加强版 先考虑弱化版怎么做 设f[i]表示某一串数,最后一个数的右端点是i时,它的左端点的最大值(也就是说,这一串数的最后一个数尽量小) 那么有$f[j]=max\{i+ ...

  5. HDU5985 Lucky Coins 概率dp

    题意:给你N种硬币,每种硬币有Si个,有Pi 概率朝上,每次抛所有硬币抛起,所有反面的拿掉,问每种硬币成为最后的lucky硬币的概率. 题解:都知道是概率dp,但是模拟赛时思路非常模糊,很纠结,dp[ ...

  6. 五大理由分析Springboot 2.0为什么选择HikariCP

    五大理由分析Springboot 2.0为什么选择HikariCP 2018-05-04 工匠小猪猪 占小狼的博客 本文非原创,是工匠小猪猪的技术世界搜集了一些HikariCP相关的资料整理给大家的介 ...

  7. 洛谷P2178 品酒大会

    题意:若两个字符开始的后面r个字符都一样,则称这两个字符是r相似的.它们也是r-1相似的. 对于r∈[0,n)分别求有多少种方案,其中权值最大方案权值是多少.此处权值是选出的两个字符的权值之积. 解: ...

  8. 洛谷P3975 弦论

    题意:求一个串的字典序第k小的子串/本质不同第k小的子串. 解:一开始我的想法是在后缀树上找,但是不知道后缀树上的边对应的是哪些字符... 然而可以不用fail树转移,用转移边转移即可. 先建一个后缀 ...

  9. A1040. Longest Symmetric String

    Given a string, you are supposed to output the length of the longest symmetric sub-string. For examp ...

  10. vue2.0项目实战(3)使用axios发送请求

    在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...