由nim游戏的结论,显然等价于去掉一些数使剩下的数异或和为0。

  暴力的dp比较显然,设f[i][j][k]为前i堆移走j堆(模意义下)后异或和为k的方案数。注意到总石子数量不超过1e7,按ai从小到大排序,这样k的枚举范围就不会超过2ai,于是复杂度O(md)。

  注意空间卡的非常紧,连滚动都开不下,改为留下的有j堆(模意义下)可能比较方便,存一下j=d-1时的数组,对j=1~d-1倒序转移完后再特判j=0即可。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 500010
#define P 1000000007
int n,m,a[N],u[N<<],f[][<<],tmp[<<];
inline void inc(int &x,int y){x+=y;if (x>=P) x-=P;}
int main()
{
#ifndef ONLINE_JUDGE
freopen("bzoj4347.in","r",stdin);
freopen("bzoj4347.out","w",stdout);
const char LL[]="%I64d\n";
#else
const char LL[]="%lld\n";
#endif
n=read(),m=read();
for (int i=;i<=n;i++) a[i]=read();
sort(a+,a+n+);
int t=;
for (int i=;i<=;i++)
{
if (t<i) t=t<<|;
u[i]=t;
}
f[][]=;
for (int i=;i<=n;i++)
{
memcpy(tmp,f[m-],u[a[i]]+<<);
for (int j=m-;j>=;j--)
for (int k=;k<=u[a[i]];k++)
inc(f[j][k],f[j-][k^a[i]]);
for (int k=;k<=u[a[i]];k++)
inc(f[][k],tmp[k^a[i]]);
}
cout<<(f[n%m][]-(n%m==)+P)%P;
return ;
}

最新文章

  1. LPC1768\1769之中断优先级与中断优先级组
  2. [转载]Python &amp; Selenium -- 页面加载时间过长&amp;启动指定FF
  3. 面向对象版js分页
  4. GridView控件 Reapter控件 DataList控件 的区别和用法
  5. (转)ultraedit for linux 安装与注册破解
  6. Ant学习实例
  7. CONSOLE_SCREEN_BUFFER_INFO 结构体
  8. ROS机器人程序设计(原书第2版)补充资料 (玖) 第九章 导航功能包集进阶 navigation
  9. Struts2源码解析2
  10. nginx+lua学习
  11. XamarinSQLite教程在Xamarin.Android项目中定位数据库文件
  12. 谁说delphi没有IOCP库,delphi新的IOCP类库,开源中
  13. golang-gorm框架支持mysql json类型
  14. ​Error -4075: File not found. An error occurred merging module &lt;MODULENAME&gt; for feature &lt;FEATURENAME&gt;.
  15. Java:当前线程运行完毕,再运行后续逻辑
  16. 巨蟒python全栈开发flask7 语音识别升级版&amp;&amp;mongoDB
  17. 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序
  18. Mybatis-Spring包学习
  19. zabbix监控tcp连接数的脚本!!
  20. ibatis核心内容概述

热门文章

  1. alias,unalias命令
  2. 14.2 multiprocessing--多线程
  3. webpack 之 webpack-dev-server自动刷新
  4. Sencha Themer
  5. [MIP]mip-script组件自定义 JS 代码使用限制
  6. pyecharts的简单使用
  7. R语言绘图:词云图
  8. java使用java.util.Properties读取properties文件的九种方法
  9. Mac下用tomcat搭建下载服务器
  10. 2016弱校联盟十一专场10.3 We don&#39;t wanna work!