Gym - 100342J:Triatrip(Bitset加速求三元环的数量)
题意:求有向图里面有多少个三元环。
思路:枚举起点A,遍历A可以到的B,然后求C的数量,C的数量位B可以到是地方X集合,和可以到A的地方Y集合的交集(X&Y)。
B点可以枚举,也可以遍历。(两种都试过,区别不大。)
枚举代码:
#include<cstdio>
#include<bitset>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=;
bitset<maxn>s[maxn];
bitset<maxn>f[maxn];
char c[maxn]; long long ans;
int main()
{
freopen("triatrip.in","r",stdin);//必须加上,不然得WA
freopen("triatrip.out","w",stdout);
int N,i,j;
scanf("%d",&N);
for(i=;i<=N;i++){
scanf("%s",c+);
for(j=;j<=N;j++){
if(c[j]=='+'){
s[i].set(j);
f[j].set(i);
}
}
}
for(i=;i<=N;i++)
for(j=;j<=N;j++)
if(s[i][j])
ans+=(s[j]&f[i]).count();
printf("%lld\n",ans/);
return ;
}
遍历代码:
#include<cstdio>
#include<bitset>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=;
bitset<maxn>s[maxn];
bitset<maxn>f[maxn];
const int maxm=; char c[maxn];
int Laxt[maxn],Next[maxm],To[maxm],cnt;
long long ans;
void update(int N)
{
for(int i=;i<=N;i++) s[i].reset();
for(int i=;i<=N;i++) f[i].reset();
memset(Laxt,,sizeof(Laxt));
cnt=ans=;
}
void add(int u,int v)
{
Next[++cnt]=Laxt[u];
Laxt[u]=cnt;
To[cnt]=v;
}
int main()
{
freopen("triatrip.in","r",stdin);//必须加上,不然得WA
freopen("triatrip.out","w",stdout);
int N,i,j;
while(~scanf("%d",&N)){
update(N);
for(i=;i<=N;i++){
scanf("%s",c+);
for(j=;j<=N;j++){
if(c[j]=='+'){
add(i,j);
s[i].set(j);
f[j].set(i);
}
}
}
for(i=;i<=N;i++){
for(j=Laxt[i];j;j=Next[j]){
int u=To[j];
ans+=(s[u]&f[i]).count();
}
}
printf("%lld\n",ans/);
}
return ;
}
Gym - 100342J:Triatrip(Bitset加速求三元环的数量)的更多相关文章
- Gym 100342J Triatrip (求三元环的数量) (bitset优化)
<题目链接> 题目大意:用用邻接矩阵表示一个有向图,现在让你求其中三元环的数量. 解题分析:先预处理得到所有能够直接到达每个点的集合$arrive[N]$和所有能够由当前点到达的集合$to ...
- Codeforces Gym 100342J Problem J. Triatrip 求三元环的数量 bitset
Problem J. Triatrip Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/at ...
- Codeforces Gym 100342J Problem J. Triatrip bitset 求三元环的数量
Problem J. TriatripTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/att ...
- Gym - 100342J Triatrip (bitset求三元环个数)
https://vjudge.net/problem/Gym-100342J 题意:给出一个邻接矩阵有向图,求图中的三元环的个数. 思路: 利用bitset暴力求解,记得最后需要/3. #includ ...
- codeforce Gym 100342J Triatrip (bitset)
傻逼题,但是为什么别人的O(n^3)不会T?只是因为用了bitset优化... 附上一张bitset基本操作的表 #include<bits/stdc++.h> using namespa ...
- Codeforces Gym 100342J Problem J. Triatrip 三元环
题目链接: http://codeforces.com/gym/100342 题意: 求三元环的个数 题解: 用bitset分别统计每个点的出度的边和入度的边. 枚举每一条边(a,b),计算以b为出度 ...
- [hdu 6184 Counting Stars(三元环计数)
hdu 6184 Counting Stars(三元环计数) 题意: 给一张n个点m条边的无向图,问有多少个\(A-structure\) 其中\(A-structure\)满足\(V=(A,B,C, ...
- FJWC2019 子图 (三元环计数、四元环计数)
给定 n 个点和 m 条边的一张图和一个值 k ,求图中边数为 k 的联通子图个数 mod 1e9+7. \(n \le 10^5, m \le 2 \times 10^5, 1 \le k \le ...
- 三元环HDU 6184
HDU - 6184 C - Counting Stars 题目大意:有n个点,m条边,问有一共有多少个‘structure’也就是满足V=(A,B,C,D) and E=(AB,BC,CD,DA,A ...
随机推荐
- GridView动态添加View
activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...
- HDU 1242 dFS 找目标最短路
//多个起点,要最短得目标,不妨倒过来从目标出发,去找最近的点更新!!!!!!递归时思路要清楚 #include<iostream> #include<cstring> usi ...
- 【Java TCP/IP Socket】基于线程池的TCP服务器(含代码)
了解线程池 在http://blog.csdn.net/ns_code/article/details/14105457(读书笔记一:TCP Socket)这篇博文中,服务器端采用的实现方式是:一个客 ...
- java判断字符串中是否含有汉字
原文:http://www.open-open.com/code/view/1426332240717 判断字符串中是否含有汉字: String str = "test中文汉字"; ...
- Docker 的CMD与ENTRYPOINT区别
我们在构建一个docker镜像的时候,Dockerfile里面有两个命令会引起我们的注意,它们就是 CMD 和 ENTRYPOINT,看起来很相似,实际上并非如此. 一.CMD 顾名思义就是允许用户指 ...
- 若菜acmer感觉自己智商全然被碾压了QAQ~~
题目大意是:输入n,m,给出n*m(n.m<=100)的不是正规的布满棋子的棋盘,求最少改几个棋子能够使得棋盘正规,正规的棋盘必须是每一个相邻的棋子颜色都不同(仅仅有黑白两种,用0,1取代) 比 ...
- 如何使用RDP跳过网络隔离?
简介 本文我将向大家演示,如何通过RDP跳转盒进入隔离/受保护的网络.下图是我为该场景制作的拓扑图: 简要说明: LAN是一种扁平的工作站和服务器网络. 一些服务器(包括RDP跳转盒)无法与Inter ...
- IDEA中Thrift插件配置
方法一:直接在IDEA界面中配置 打开IDEA的插件中心,搜索 Thrift 即可安装 方法二:手动下载Thrift插件安装 有时像在IDEA中安装Lombok插件一样,有时由于网络原因,方法一不奏效 ...
- 【自用】OI计划安排表一轮
网络流√ 上下界最大流√ 线性规划转费用流√ RMQ优化建图√ 单纯形√ 字符串相关 hash√ 扩展KMP 回文自己主动机 数据结构 平衡树 启示式合并 替罪羊树 LCT 树套树 KD-Tree 二 ...
- Solidworks如何运行Toolbox
现在的问题不是没安装,没配置,这两项已经勾选了 Toolbox也配置到第五步了,但是没有什么"完成"按钮,我只能点击关闭把这个窗口关了,而且下次要拉一颗螺丝进来也不行 这样 ...