题目链接: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. java虚拟机之JVM生命周期

    java生命周期分为以下三部分:启动,运行,消亡. 启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的 ...

  2. swift中使用UIColllectionView实现横向轮播的一般方法

    // //  HomeLiveRankCell.swift //  YYSwiftProject // //  Created by Domo on 2018/7/28. //  Copyright ...

  3. 卷积神经网络应用于tensorflow手写数字识别(第三版)

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist = input_dat ...

  4. Spring中的注解——@nullable和@notnull

    @nullable和@nutNull 在写程序的时候你可以定义是否可为空指针.通过使用像@NotNull和@Nullable之类的annotation来声明一个方法是否是空指针安全的.现代的编译器.I ...

  5. adfs环境安装

    安装文档参考: https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/deployment/set-up-the-lab-env ...

  6. JS-语句四

    For 循环: for 循环是创建循环时常会用到的工具. 下面是 for 循环的语法: ; 语句 ; 语句 ) { 被执行的代码 } 其中语句1是初始值:语句2是.条件判断:语句3是状态改变:被执行的 ...

  7. 百度链接提交-js代码推送批量推送版

    1原百度JS链接推送代码 首先我们来看一下原百度JS链接推送代码是这*样的 用百度自己的话讲:JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用.安装代码的页面在任意平台(浏 ...

  8. webapi 传入参数校验

    /// <summary> /// 传入参数校验过滤器 /// </summary> public class ValidateReqModelFilter : ActionF ...

  9. 实战Arch Unit

    在以前的文章中介绍了通过 [<实战PMD>](https://zhuanlan.zhihu.com/p/105585075).[<实战Checkstyle>](https:// ...

  10. 视频课程 | 云原生下的Serverless浅谈

    京东云开发者社区在3月底于北京举行了以"Cloud Native时代的应用之路与开源创新"为主题的技术沙龙,现场多位技术大咖与开发者们面对面就Cloud Native进行了深入交流 ...