题意:给定n个a[i],m个长为n的01串,定义串a与b之间的运算为a^b再按位取反,若第i位为1则运算结果加a[i]

q组询问(x,y),每次询问m个串中与串x运算后答案小于等于y的串的个数

n<=12,q,m<=5e5,y<=1e2

思路:状压前缀和

预处理每个状态的权值

 #include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<set>
#include<queue>
#include<vector>
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef vector<int> VI;
#define fi first
#define se second
#define MP make_pair
#define N 1100000
#define MOD 1000000007
#define eps 1e-8
#define pi acos(-1) int f[],g[][],a[N],b[N],c[N],flag[N];
char ch[],x[]; int read()
{
int v=,f=;
char c=getchar();
while(c<||<c) {if(c=='-') f=-; c=getchar();}
while(<=c&&c<=) v=(v<<)+v+v+c-,c=getchar();
return v*f;
} void swap(int &x,int &y)
{
int t=x;x=y;y=t;
} int main()
{
// freopen("1.in","r",stdin);
//freopen("1.out","w",stdout);
int n,m,q;
scanf("%d%d%d",&n,&m,&q);
int max=(<<n)-;
for(int i=;i<=n;i++) scanf("%d",&a[i]); for(int i=;i<=m;i++)
{
scanf("%s",ch);
int now=;
int x=;
for(int j=n-;j>=;j--)
{
if(ch[j]=='') x+=now;
now<<=;
}
flag[x]++;
} m=;
for(int i=;i<=max;i++)
if(flag[i]){b[++m]=i; c[m]=flag[i];} for(int i=;i<=max;i++)
for(int j=;j<=n;j++)
if(i&(<<(j-))) f[i]+=a[n-j+]; for(int i=;i<=(<<n);i++)
for(int j=;j<=m;j++)
{
int t=f[(i^b[j])^max];
if(t<=) g[i][t]+=c[j];
} for(int i=;i<=(<<n);i++)
for(int j=;j<=;j++) g[i][j]+=g[i][j-]; for(int i=;i<=q;i++)
{
int y;
scanf("%s%d",x,&y);
int now=;
int t=;
for(int j=n-;j>=;j--)
{
if(x[j]=='') t+=now;
now<<=;
}
y=min(y,);
printf("%d\n",g[t][y]);
} return ;
}

最新文章

  1. C#设计模式(1)——单例模式
  2. 【Win 10应用开发】认识一下UAP项目
  3. jQuery与Struts2综合应用[stream/json]
  4. LeetCode-53-Maximum Subarray
  5. 论MySQL的监控和调优
  6. 深入理解jQuery插件开发(转)
  7. highcharts实例教程一:结合php与mysql生成折线图
  8. C#变量修饰符
  9. vue2.0版cnode社区项目搭建及实战开发
  10. PHP学习笔记-1
  11. Windows10 64位系统安装 .NET Framework 3.5
  12. iOS10 越狱, openSSH
  13. Vue 添加外部的时间插件不触发v-model事件更改数据
  14. shell编程第三天
  15. Angularjs 通过asp.net web api认证登录
  16. [20180619]oradebug peek.txt
  17. RN项目中使用react-native-elements报错: Unrecognized font family &#39;Material Icons&#39;
  18. Python微信红包算法
  19. 神经网络激活函数sigmoid relu tanh 为什么sigmoid 容易梯度消失
  20. C#通过盘符获取剩余空间

热门文章

  1. Xcode开发技巧
  2. [bzoj]1930 pacman吃豆豆
  3. pandas中的随机排序和抽样
  4. pandas中层次化索引与切片
  5. 【Spring】事务的实现方式
  6. 如何用 CSS 和 D3 创作火焰动画
  7. golang 函数的特殊用法
  8. 打印机增强软件pdfpro
  9. NPM包的安装及卸载
  10. Ubuntu超简单文书编辑器:nano