题目链接:http://codeforces.com/gym/100553/attachments/download/2885/20142015-acmicpc-northeastern-european-regional-contest-neerc-14-en.pdf

首先bitset用法链接:https://www.cnblogs.com/magisk/p/8809922.html

题解: 题目要判断哪个文本串是符合题意的.

限制:此字符串包含的信息用二进制表示后,可以找到一个u[i]使得对于每一个a[j]  进行运算后次位上都标记为1.

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=;
ll a[maxn],u[maxn];
string str[];
vector<int>v;
bitset<>info[],now;//储存每一个u[i]对应的能满足f的二进制串 string change(char x)//注意1转换为1000而不是0001,第一位为二进制的最低位,然后依次递推
{
if(x=='') return (string)("");
else if(x=='') return (string)("");
else if(x=='') return (string)("");
else if(x=='') return (string)("");
else if(x=='') return (string)("");
else if(x=='') return (string)("");
else if(x=='') return (string)("");
else if(x=='') return (string)("");
else if(x=='') return (string)("");
else if(x=='') return (string)("");
else if(x=='a') return (string)("");
else if(x=='b') return (string)("");
else if(x=='c') return (string)("");
else if(x=='d') return (string)("");
else if(x=='e') return (string)("");
else return (string)("");
}
int main()
{
freopen("filter.in", "r", stdin);
freopen("filter.out", "w", stdout);
int m,f,n,q;
cin>>m>>f;
for(int i=;i<=f;i++){
cin>>a[i];
}
cin>>n;
for(int i=;i<=n;i++){
cin>>str[i];
}
cin>>q;
for(int i=;i<=q;i++){//记录每个u[i]可转变为的二进制串
cin>>u[i];
info[i].reset();
for(int j=;j<=f;j++){
int pos=u[i]*a[j]%m;
info[i].set(pos,);
}
}
for(int i=;i<=n;i++){ string s;
int len=str[i].size();
for(int j=;j<m/;j++){
s+=change(str[i][j]);
}
if(m%){
string w=change(str[i][len-]);
for(int j=;j<m%;j++){
s+=w[j];
}
}
reverse(s.begin(),s.end());
bitset<>ww(s);//ww记录当前文本串的二进制串信息
for(int j=;j<=q;j++){//题目要求:如果能找到一个u[i]使得每个f[j]运算后都标记为1,这个信息才是有记录的
now=ww&info[j];//我们需要判断ww是否包含info[i],只需这样与运算一下即可,
if(now.count()==info[j].count()){//然后判断一下1的个数是否相同
v.push_back(i-);
break;
}
}
}
cout<<v.size()<<endl;
for(int i=;i<v.size();i++)
cout<<v[i]<<' ';
cout<<endl;
return ;
}
/*
23 4 3 5 7 11
3
effde7
c07902
0800c1
3 2 4 6
*/

F - Filter Gym - 100553F (bitset用法)的更多相关文章

  1. python中filter,reduce,map的用法

    filter的用法: 操作表list的内嵌函数'filter' 需要一个函数与一个list它用这个函数来决定哪个项应该被放入过滤结果队列中遍历list中的每一个值,输入到这个函数中如果这个函数返回Tr ...

  2. 【BZOJ 1923】1923: [Sdoi2010]外星千足虫 (高斯消元异或 | BITSET用法)

    1923: [Sdoi2010]外星千足虫 Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果.每行 包含一个 ...

  3. 位运算 进制转化 STL中bitset用法

    2017-08-17 16:27:29 writer:pprp /* 题目名称:输入十进制以二进制显示 程序说明:同上 作者:pprp 备注:无 日期:2017/8/17 */ #include &l ...

  4. 3.filter原理(bitset机制与caching机制)

    主要知识点: 一次filter执行顺序 filter和query的特点     一.一次filter执行顺序     1.在倒排索引中查找搜索串,获取document list 以一下date数据来举 ...

  5. Bitset 用法(STL)

    std::bitset是STL的一个模板类,它的参数是整形的数值,使用位的方式和数组区别不大,相当于只能存一个位的数组.下面看一个例子 bitset<20> b1(5); cout< ...

  6. jQuery中filter(),not(),split()的用法

    filter(),not(): <script type="text/javascript"> $(document).ready(function() { //输出 ...

  7. C++ bitset 用法

    C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间. 下面是具体用法 构造函数 bitset常用构造函数有四种,如下 bi ...

  8. filter以及reduce的用法

    简单的写了就几个例子 # 删掉偶数 li = [1,2,3,4,5,6,7,8,9,10] print(list(filter( lambda x : not x % 2 ==0 ,li))) #保留 ...

  9. bitset用法

    学习博客:https://www.cnblogs.com/magisk/p/8809922.html C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0 ...

随机推荐

  1. RFX2401C与RFX2402E的区别

    随着科技的发展,射频设备也慢慢的普及,射频放大器在射频设备中起着非常重要的作用.为了能获得足够大的距离,必须都要外加射频信号放大器. 射频信号放大器简称 “PA”.PA主流应用主要有ZigBee .无 ...

  2. Python开源库的bug

    scipy 在misc的pilutil.py中def fromimage(im, flatten=0)函数中, # workaround for crash in PIL, see #1613.im. ...

  3. Vulkan SDK 之 Descriptor Set Layouts and Pipeline Layouts

    当我们有了一个uniform buff之后,vulkan 还不知道这个信息,需要通过descriptor进行描述. Descriptors and Descriptor Sets A descript ...

  4. UML概念

    UML UML:Unified Modeling Language是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明,可视化,结构和编写一个正在开发的,面向对象的,软件密集系统的制品开放 ...

  5. POJ 2771 最大点独立集

    这是经典的最大点独立集 还是可以转化成最大匹配数,为什么呢,因为求出最大匹配数之和,匹配的边的两个端点互斥,只能去一个,所以最后结果就用总点数-最大匹配数即可 #include <iostrea ...

  6. python刷LeetCode:13. 罗马数字转整数

    难度等级:简单 题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II  ...

  7. cf1200 E Compress Words(哈希)

    题意 有n个字符串,记为s1,s2……sn,s2与s1合并,合并的方式为:s1的后缀若与s2的前缀相同,就可以重叠起来,要最长的. 举个例子: “1333”  “33345” → “133345” s ...

  8. Vue.js(15)之 json-server搭建模拟的API服务器

    json-server搭建模拟的API服务器 运行命令 npm install json-server -D 全局安装 json-server 项目根目录下创建 mock 文件夹 mock 文件夹下添 ...

  9. .NET技术-3.0. 日志插件 log4net

    .NET技术-3.0. 日志插件 log4net 背景:框架 NetFramework3.5 1. 新建控制台程序 2. 程序包管理器控制台中 增加 Nuget包 Install-Package lo ...

  10. 2014 3.22 校队选拔——A

    依然非常失望,我为什么现在还是那么弱,今天就做出了一道题,垫底. 一个大家都看出来的C题,我居然没找到规律,想了一会儿就放弃了. A题是这样的,有n种珍珠,给出这n种珍珠各自的数目,再给出一个M,表示 ...