bitset是一个存储0和1的数组

可以快速的把两个bitset的每一位对应做与或啥的

在可以用01串表示某个状态的时候可以应用到它

就是有两个集合,求它们的交集

bitset <> a,b,c;
a[] = a[] = a[] = ;
b[] = b[] = b[] = b[] = ;
c = a & b;
cout << c << endl;
cout << "size = " << c.count() << endl;

HihoCoder 1513

题意:给出n个学生,他们5门课的排名,问对每个学生,每科都有多少人排在它前面

思路:n是30000,n^2在bitset下可以过的,因为每个学生的排名不同,所以bs[i][j]保存第 i 门课,排名为 j 的学生,有哪些人排名比他高

这里要注意储存的状态的选择,因为输出的时候每个学生我们只知道它该门课它的排名,而对于这门课来说,不同排名的人的bs数组肯定是不同的,所以 j 的状态选择即为排名为 j

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <bitset>
using namespace std;
const int SZ = ;
const int INF = ;
int mp[SZ][];
int a[SZ], b[SZ], c[SZ], d[SZ], e[SZ];
bitset<SZ> bs[][SZ], ans;
int main()
{
int n;
scanf("%d", &n);
for(int i = ; i <= n; i++)
{
scanf("%d %d %d %d %d", &a[i], &b[i], &c[i], &d[i], &e[i]);
mp[a[i]][] = i, mp[b[i]][] = i, mp[c[i]][] = i, mp[d[i]][] = i, mp[e[i]][] = i;
}
for(int i = ; i < ; i++)
for(int j = ; j <= n; j++)
{
bs[i][j] = bs[i][j-];
bs[i][j][mp[j-][i]] = ;
//cout << i <<" "<< j <<" "<< bs[i][j] << endl;
}
for(int i = ; i <= n; i++)
{
ans = bs[][a[i]] & bs[][b[i]] & bs[][c[i]] & bs[][d[i]] & bs[][e[i]];
printf("%d\n", ans.count());
}
return ;
}

Gym 100342J

题意:给n个城市,有些城市间有有向边,求三元环的个数(三元环:A->B->C->A)

思路:想不到bitset哇。。。把每个城市能到达的城市,和能被到达的用bitset表示出来

循环n个城市(A),对每个A找到它能到达的B(用vector存)

B能到达的城市,和A能被到达的城市,这两个集合的交集就是C,&一下然后count1的个数即可

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <vector>
using namespace std;
typedef long long LL;
const int SZ = ;
const int INF = ;
int vis[SZ][SZ];
char s[SZ][SZ];
bitset<SZ> bs[][SZ];
vector<int> v[SZ];
int main()
{
freopen("triatrip.in", "r", stdin);
freopen("triatrip.out", "w", stdout);
int n;
scanf("%d", &n);
for(int i = ; i < n; i++)
scanf(" %s", s[i]);
for(int i = ; i < n; i++)
for(int j = ; j < n; j++)
if(s[i][j] == '+')
{
bs[][i][j] = ;
bs[][j][i] = ;
v[i].push_back(j);
}
LL cnt = ;
for(int i = ; i < n; i++)
for(int j = ; j < v[i].size(); j++)
cnt += (LL)((bs[][v[i][j]] & bs[][i]).count());
printf("%lld\n", cnt/);
return ;
}

暑假集训 || bitset的更多相关文章

  1. 2015UESTC 暑假集训总结

    day1: 考微观经济学去了…… day2: 一开始就看了看一道题目最短的B题,拍了半小时交了上去wa了 感觉自己一定是自己想错了,于是去拍大家都过的A题,十分钟拍完交上去就A了 然后B题写了一发暴力 ...

  2. STL 入门 (17 暑假集训第一周)

    快速全排列的函数 头文件<algorithm> next_permutation(a,a+n) ---------------------------------------------- ...

  3. 暑假集训Day2 互不侵犯(状压dp)

    这又是个状压dp (大型自闭现场) 题目大意: 在N*N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. ...

  4. 暑假集训Day1 整数划分

    题目大意: 如何把一个正整数N(N长度<20)划分为M(M>=1)个部分,使这M个部分的乘积最大.N.M从键盘输入,输出最大值及一种划分方式. 输入格式: 第一行一个正整数T(T<= ...

  5. 2013ACM暑假集训总结-致将走上大三征途的我

    回想起这个暑假,从开始与雄鹰一起的纠结要不要进集训队,与吉吉博博组队参加地大邀请赛,害怕进不了集训队.当时激励我月份开始接触的,记得当时在弄运动会来着,然后就问了雄鹰一些输入输出的东西,怀着满心的期待 ...

  6. [补档]暑假集训D5总结

    %dalao 今天又有dalao来讲课,讲的是网络流 网络流--从入门到放弃:7-29dalao讲课笔记--https://hzoi-mafia.github.io/2017/07/29/27/   ...

  7. [补档]暑假集训D1总结

    归来 今天就这样回来了,虽然心里极其不想回来(暑假!@#的只有一天啊喂),但还是回来了,没办法,虽然不喜欢这个地方,但是机房却也是少数能给我安慰的地方,心再累,也没有办法了,不如好好集训= = %da ...

  8. 暑假集训——cf热身赛部分题有感加其题解

    刚刚开始集训,集训队队长暂时还没有拉专题,而是拉了部分codeforces上过题人数在2000左右的题组成了一场热身赛(其实就是一场练习),花了一天时间终于把它刷完了,其中很多题让我学到了很多骚操作, ...

  9. Uestc_suibian 暑假集训总结

    唉,终于组队了,终于可以只BB了,我就BB,我就不上! 和Xiper以及chenxh组队了- 下面是总结: day1 第一天吃饱喝足,然后就上路了,我一开始就看到了C题大水题,但是我不敢想象这道题居然 ...

随机推荐

  1. bzoj4556

    后缀自动机+二分+倍增+线段树合并 后缀自动机真好用 后面一个串是固定的,那么我们要对前面的串进行一些操作.我们想既然是求lcp,那么我们得先翻转原串,这样前缀变成了后缀,然后二分一下,从d在自动机上 ...

  2. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 12. Views 下

    ASP.NET Core MVC 13. 安装前端库 Partial VIew 就是部分View,他没有自己的数据,数据来自图中白色的那块,它的数据需要传进去,第一个参数是View的名称,第二个参数就 ...

  3. 任务37:生成 JWT Token

    实现给用户办法token 默认是可以访问valuesController的,返回的状态是200 http://localhost:5429/api/values 返回的状态码是200 把ValuesC ...

  4. hexo博客实现多终端共享&webhook自动化部署

    摘要:好不容易搭建了hexo,还不满足.想要实现在小程序上也能访问博客,又不想再写一个后台.每次更新文章到服务器之后,希望能自动同步到网站上面.如果你有这样的需求,那么希望这篇文章能帮助到你. 我的配 ...

  5. spoj SUBST1 - New Distinct Substrings【SAM||SA】

    SAM里的转台不会有重复串,所以答案就是每个right集合所代表的串个数的和 #include<iostream> #include<cstdio> #include<c ...

  6. .NET CORE之API日志收集

    我们在构建WEBAPI项目时,通常需要构建一个全局的记录API 请求和返回 的功能,在WEBAPI框架下 我们通过自定义一个DelegateHandler来实现这个功能, 在.NET CORE框架下已 ...

  7. _bzoj1029 [JSOI2007]建筑抢修【贪心 堆】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1029 经典的贪心问题,不解释. #include <cstdio> #inclu ...

  8. Apache Kylin Cube 的构建过程

    不多说,直接上干货! 1. Cube的物理模型 Cube物理模型 如上图所示,一个常用的3维立方体,包含:时间.地点.产品.假如data cell 中存放的是产量,则我们可以根据时间.地点.产品来确定 ...

  9. [转]EntityFramework之领域驱动设计实践

    本文转自:http://www.cnblogs.com/daxnet/archive/2010/11/02/1867392.html Entity Framework之领域驱动设计实践 EntityF ...

  10. CAS分析

    CAS:Compare and Swap, 翻译成比较并交换.   CAS 指的是现代 CPU 广泛支持的一种对内存中的共享数据进行操作的一种特殊指令.这个指令会对内存中的共享数据做原子的读写操作.简 ...