题目链接: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. cf 609E.Minimum spanning tree for each edge

    最小生成树,lca(树链剖分(太难搞,不会写)) 问存在这条边的最小生成树,2种情况.1.这条边在原始最小生成树上.2.加上这条半形成一个环(加上),那么就找原来这条边2端点间的最大边就好(减去).( ...

  2. 在div中注入html代码

    直接开始: <div id="content"class="modal-body"> </div> 在angularjs中使用如下代码, ...

  3. stm32f4 dma + uart idle + double 调试小记

    使用 stm32f4 调试uart 接收, 使用 空闲中断,dma 双缓冲模式,有以下几点需要注意的. 调试的时候断点不要打在 if (USART_GetITStatus(USART6, USART_ ...

  4. 吴裕雄--天生自然Django框架开发笔记:Django Admin 管理工具

    Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: ...

  5. 51nod 1267:4个数和为0 哈希

    1267 4个数和为0 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出&qu ...

  6. 51nod1021:石子归并

    1021 石子归并 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合 ...

  7. python 流行库、库的基本用法

    进入github,输入python 点击see topic 进入python流行的库  链接 https://github.com/topics/python 1.QuantLib 金融衍生品数据库 ...

  8. python控制鼠标键盘

    1.安装类库 pip install pyautogui 2.代码: import pyautogui,time,random pyautogui.PAUSE = pyautogui.FAILSAFE ...

  9. android手机客户端测试-思考方向

    来源公开课!!! 1.冒烟测试  Monkey 工具    目标:1.编写adb.exe的Monkey命令. 2.通过logcat定位问题,保证软件的健壮性. 2.安装.卸载测试   2.1   手机 ...

  10. setoolkit+花生壳 制作钓鱼网站

    国家法律一定要遵守,知识要用在对的地方. 本贴只为了和大家交流学习,请勿用在其他地方,损害任何人的利益. 今天我,来说一下钓鱼网站 (在kali) 我们选择  1  回车 再选择 2 回车 再选择3 ...