【链接】 我是链接,点我呀:)

【题意】

给你n个字符串放在multiset中。
这些字符串都是长度为m的01串。
然后给你q个询问
s,k
问你set中存在多少个字符串t
使得∑(t[i]==s[i])*w[i]的值

【题解】

虽然询问很多。
但分类一下最多也只有2^12个01串类型。
(01串可以和10进制数字一一对应)
我们可以先预处理一下答案。到时候直接输出。
2^12将近4500的样子
两重循环i,j
算出来01串i它和其他字符串j的特殊值为pair(i,j)的j的个数。
然后f[i][pair(i,j)]+=cnt[j]
那么我们再求个前缀和->f[i][j]+=f[i][j-1];
那么到时候直接输出f[s][k]就可以了。

用scanf。。不然会超时。

【代码】

#include <bits/stdc++.h>
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define all(x) x.begin(),x.end()
#define pb push_back
#define lson l,mid,rt<<1
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%lld",&x)
#define res(x) scanf("%s",x)
#define rson mid+1,r,rt<<1|1
using namespace std; const double pi = acos(-1);
const int dx[4] = {0,0,1,-1};
const int dy[4] = {1,-1,0,0}; const int N = 12; int n,m,q,w[N+5],k;
int sum[(1<<N)+5][100+10];
int cnt[(1<<N)+5];
char s[N+5]; int get_value(int x,int y){
int cur = 0;
for (int i = n;i >=1;i--){
if ((x&1)==(y&1)){
cur += w[i];
}
x>>=1;y>>=1;
}
return cur;
} int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
scanf("%d%d%d",&n,&m,&q);
rep1(i,1,n) scanf("%d",&w[i]);
rep1(i,1,m){
scanf("%s",s);
int cur = 0;
for (int i = 0;i < n;i++){
cur<<=1;
if (s[i]=='1') cur++;
}
cnt[cur]++;
}
for (int i = 0;i < (1<<n);i++){
for (int j = 0;j < (1<<n);j++)
if (cnt[j]>0){
int value = get_value(i,j);
if (value<=100) sum[i][value]+=cnt[j];
}
for (int j = 0;j <= 100;j++) sum[i][j] += sum[i][j-1];
}
while (q--){
int k;
scanf("%s%d",s,&k);
int cur = 0;
for (int i = 0;i < n;i++){
cur<<=1;
if (s[i]=='1') cur++;
}
printf("%d\n",sum[cur][k]); }
return 0;
}

最新文章

  1. POJ 2752 Seek the Name, Seek the Fame [kmp]
  2. UIScrollView(滚动视图)
  3. linux上的常见命令掌握
  4. Xposed知识
  5. C#基础入门--关于C#背景介绍以及变量相关
  6. 在Visual Studio Express 2013中开发自定义控件
  7. Codeforces 12D Ball 树形阵列模拟3排序元素
  8. dojo的TabContainer添加ContentPane假设closable,怎么不闭幕后予以销毁ContentPane
  9. Mac下使用charles遇到的问题以及解决办法
  10. 安装grub
  11. 和scikit-learn打个招呼
  12. SQL Server存储过程邮件发送以表格方式发送
  13. shell编程 之 函数
  14. 基于Groovy+HttpRestful的超轻量级的接口测试用例配置的设计方案及DEMO实现
  15. K8S学习笔记之Kubernetes 部署策略详解
  16. 生命周期方法调用,以及在onStop()方法中处理草稿信息
  17. FW:stash install
  18. Github文件夹下载到本地
  19. 【转】OpenWRT开发自定义应用方法
  20. 开启停止wifi热点bat脚本

热门文章

  1. Android学习笔记(17):文本框TextView类
  2. 【POJ 2486】 Apple Tree(树型dp)
  3. 项目PMO工作
  4. python使用pytest+pytest报告
  5. 301 和 302 对 SEO 的影响
  6. MySQL出现Ignoring query to other database的问题
  7. java怎么学
  8. [SPOJ 30669] Ada and Trip
  9. mvc:view-controller直接转发页面
  10. ubuntu刚安装好之后apt-get使用异常