F - Filter Gym - 100553F (bitset用法)
首先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用法)的更多相关文章
- python中filter,reduce,map的用法
filter的用法: 操作表list的内嵌函数'filter' 需要一个函数与一个list它用这个函数来决定哪个项应该被放入过滤结果队列中遍历list中的每一个值,输入到这个函数中如果这个函数返回Tr ...
- 【BZOJ 1923】1923: [Sdoi2010]外星千足虫 (高斯消元异或 | BITSET用法)
1923: [Sdoi2010]外星千足虫 Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果.每行 包含一个 ...
- 位运算 进制转化 STL中bitset用法
2017-08-17 16:27:29 writer:pprp /* 题目名称:输入十进制以二进制显示 程序说明:同上 作者:pprp 备注:无 日期:2017/8/17 */ #include &l ...
- 3.filter原理(bitset机制与caching机制)
主要知识点: 一次filter执行顺序 filter和query的特点 一.一次filter执行顺序 1.在倒排索引中查找搜索串,获取document list 以一下date数据来举 ...
- Bitset 用法(STL)
std::bitset是STL的一个模板类,它的参数是整形的数值,使用位的方式和数组区别不大,相当于只能存一个位的数组.下面看一个例子 bitset<20> b1(5); cout< ...
- jQuery中filter(),not(),split()的用法
filter(),not(): <script type="text/javascript"> $(document).ready(function() { //输出 ...
- C++ bitset 用法
C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间. 下面是具体用法 构造函数 bitset常用构造函数有四种,如下 bi ...
- filter以及reduce的用法
简单的写了就几个例子 # 删掉偶数 li = [1,2,3,4,5,6,7,8,9,10] print(list(filter( lambda x : not x % 2 ==0 ,li))) #保留 ...
- bitset用法
学习博客:https://www.cnblogs.com/magisk/p/8809922.html C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0 ...
随机推荐
- bzoj 3732Network
先搞个最小生成树,然后lca(和之前的一个cf题差不多2333, 纯属颓废了..) 顺便思考了一下正确性. 因为所求的是所有路径中最大边的最小值.而kruskal每次往里添加的就是最小边.所以在生成树 ...
- MyBatis 关联查询的实现:一对一
有2个实体:用户.会员卡,一个用户只能办理一张会员卡,即一对一. user_tb : 需要在一方引入另一方的主键作为外键. card_tb: 使用扩展类 (1)在pojo包下新建User类: pack ...
- 阿里P7Java最全面试296题:阿里天猫、蚂蚁金服含答案文档解析
[阿里天猫.蚂蚁.钉钉面试专题题目加答案] 不会做别着急:文末有答案以及视频讲解,架构师资料 1. junit用法,before,beforeClass,after, afterClass的执行顺序 ...
- ci框架与smarty的整合
ci框架与smarty的整合 来源:未知 时间:2014-10-20 11:38 阅读数:108 作者:xbdadmin [导读] Ci 和 smarty 的完美结合 Ci 结合 sma ...
- 光纤卡网卡的区别以及HBA的常规定义-----引自百度百科
在讨论这个问题的时候,需要先说清楚一个问题:我们知道,在早期的SAN存储系统中,服务器与交换机的数据传输是通过光纤进行的,因为服务器是把SCSI指令传输到存储设备上,不能走普通LAN网的IP协议,所以 ...
- Java学习十三
学习内容: 1.Java反射 2.jdbc入门 1.反射的概述 Java的反射机制:动态获取信息以及动态调用对象方法 Java的反射机制的作用:用来编写一些通用性较高的代码或者框架的时候使用 原理:j ...
- java笔记3-手写
关于类的一些笔记
- Linux(CENTOS7) Jdk完整步骤安装
方式一: 直接通过yum安装,这种方式比较方便,下面贴上安装jdk1.8*的命令: -openjdk* -y 上面命令执行完成之后,使用下面命令即可查看是否安装成功: java -version 方式 ...
- [Java-基础] 什么是ORM
ORM简介 ORM:对象关系映射:Object Relational Mapping 用于实现面向对象编程语言里不同类型系统的数据之间的转换 一般的,数据库绝大部分是面向关系的数据库,但是写代码的 ...
- java android环境变量配置
JAVA_HOME 用于jdk配置D:\Program Files\Java\jdk1.8.0_25 path %JAVA_HOME%\bin;;%JAVA_HOME%\jre\bin;;D:\P ...