bitset基础用法+心得
今天上午听AntiLeaf学长讲课,获悉了bitset这种神奇的操作,还是大喊一句:stl大法吼啊!
bitset是用来进行一些状态储存的操作。类似于一个标记数组,又类似于状压里面的二进制。
它与状压的共同点是都可以直接进行一些二进制操作。而且好用的是它类似于动态数组,可以开很多位。
需要调用bitset库。
申请:
bitset<100000> b;
进行一些与二进制相同的操作:
b<<1;//b整体左移 b|=10; //b或 1010
位数也是左边是高位,右边是低位。从0开始。可以直接访问为b[0]
初始化bitset对象的方法
bitset<n> b; |
b有n位,每位都为0 |
bitset<n> b(u); |
b是unsigned long型u的一个副本 |
bitset<n> b(s); |
b是string对象s中含有的位串的副本 |
bitset<n> b(s, pos, n); |
b是s中从位置pos开始的n个位的副本 |
bitset操作
b.any() |
b中是否存在置为1的二进制位? |
b.none() |
b中不存在置为1的二进制位吗? |
b.count() |
b中置为1的二进制位的个数 |
b.size() |
b中二进制位的个数 |
b[pos] |
访问b中在pos处的二进制位 |
b.test(pos) |
b中在pos处的二进制位是否为1? |
b.set() |
把b中所有二进制位都置为1 |
b.set(pos) |
把b中在pos处的二进制位置为1 |
b.reset() |
把b中所有二进制位都置为0 |
b.reset(pos) |
把b中在pos处的二进制位置为0 |
b.flip() |
把b中所有二进制位逐位取反 |
b.flip(pos) |
把b中在pos处的二进制位取反 |
b.to_ulong() |
用b中同样的二进制位返回一个unsigned long值 |
os << b |
把b中的位集输出到os流 |
例题:cogs2434
#include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> #include<bitset> #define mod 10007 #define ll long long #define Mod 1000007 using namespace std; ll t,n,m,a,b,c,y,d,e,f,s[200005]; bitset<1000010> ans; inline ll read() { ll sum=0,f=1;char x=getchar(); while(x<'0'||x>'9'){if(x=='-')f=-1;x=getchar();} while(x>='0'&&x<='9')sum=sum*10+x-'0',x=getchar(); return sum*f; } inline int messi() { freopen("animalcupid.in","r",stdin); freopen("animalcupid.out","w",stdout); t=read(); while(t--) { ans.reset(); ans.set(0); n=read();m=read(); s[0]=read()%mod;a=read()%mod;b=read()%mod;c=read()%mod; y=read()%Mod;d=read()%Mod;e=read()%Mod;f=read()%Mod; for(int i=1;i<=n;i++) { s[i]=((a*s[i-1]*s[i-1])%mod+(b*s[i-1])%mod+c)%mod; ans|=ans<<s[i]; } for(int i=1;i<=m;i++) { y=((y*y*d)%Mod+(y*e)%Mod+f)%Mod; if(ans[y]) printf("yes\n"); else printf("no\n"); } } } int hallmeow=messi(); int main(){;}
bitset基础用法+心得的更多相关文章
- PropertyGrid控件由浅入深(二):基础用法
目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...
- bitset简单用法
bitset的创建: #include<bitset> bitset<32> ar; //默认全为0 bitset<32> ar(n); //n的二进制 bitse ...
- logstash安装与基础用法
若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...
- elasticsearch安装与基础用法
来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...
- BigDecimal最基础用法
BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...
- Vue组件基础用法
前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...
- Smarty基础用法
一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...
- 前端自动化测试神器-Katalon的基础用法
前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...
- Bootstrap fileinput:文件上传插件的基础用法
官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...
随机推荐
- JavaScript 语言基础
js语言基础 一 基本知识 UniCode编码 区分大小写(HTML不区分/XHTML区分) Unicode转义序列 \uxxxx (\u加4位16进制表示) 注释 单行注释:// 多行注释:/* * ...
- wget访问SOAP接口
SOAP协议主要是XML交互,所以其访问过程类似于这样: wget --header='Content-Type: text/xml;charset=utf-8' --post-data='<s ...
- ssh自动化出现的莫名报错
代码如: ssh -q user@host <<EOF localhost EOF 会出现提示如: Pseudo-terminal will not be allocated becaus ...
- VB6之SOAP
根据网上搜来的资料,MS有个组件可以用来支撑VB6访问SOAP接口. 于是下载了个msSoapToolkit.exe安装后试了下,发现确实可以访问用C#或者VB.net写的webservice. 但是 ...
- eclipse打开时提示:failed to create the java virtual machine
Eclipse打开时提示: failed to create the java virtual machine 原因:C盘空间不够 编辑删除 处理:1.用金山清理临时文件: 2.用金山手机卫士连接 ...
- PB程序源码文件结构 pbl文件 pbd文件
最近公司给了一套PB的源码,一个8.0,一个9.0,让给一个客户做软件整合,之前只听过PB看过别人写代码,为了快速上手,了解了一下PB的文件,记录如下:pbl为pb源码文件 pbd为程序编译后的文件 ...
- java系统高并发解决方案(转载收藏)
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单,随着互联网业务的不断丰富,网站 ...
- VBA编程的工程性规划
看过很多人写的VBA代码,一团一团的,一点规划都没有,为了VBA编程更具工程性,这里讨论一下,并列出自己的一些建议:0.给VBA工程定义一个名字,而非直接使用默认的名称——"VBAProje ...
- iOS图解多线程
前言 多线程一直是iOS开发中重中之重的话题,无论是面试还是真正在公司中进行业务开发,都会经常使用到多线程来开发.笔者在简书上看到一张图,记录的是多线程的相关知识,笔者认为这是非常好的,推荐给大家: ...
- tensorflow softmax应用
---恢复内容开始--- 1.softmax函数 2.tensorflow实现例子 #!/usr/bin/env python # -*- coding: utf-8 -*- import tenso ...