题意:求有向图里面有多少个三元环。

思路:枚举起点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加速求三元环的数量)的更多相关文章

  1. Gym 100342J Triatrip (求三元环的数量) (bitset优化)

    <题目链接> 题目大意:用用邻接矩阵表示一个有向图,现在让你求其中三元环的数量. 解题分析:先预处理得到所有能够直接到达每个点的集合$arrive[N]$和所有能够由当前点到达的集合$to ...

  2. Codeforces Gym 100342J Problem J. Triatrip 求三元环的数量 bitset

    Problem J. Triatrip Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/at ...

  3. Codeforces Gym 100342J Problem J. Triatrip bitset 求三元环的数量

    Problem J. TriatripTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/att ...

  4. Gym - 100342J Triatrip (bitset求三元环个数)

    https://vjudge.net/problem/Gym-100342J 题意:给出一个邻接矩阵有向图,求图中的三元环的个数. 思路: 利用bitset暴力求解,记得最后需要/3. #includ ...

  5. codeforce Gym 100342J Triatrip (bitset)

    傻逼题,但是为什么别人的O(n^3)不会T?只是因为用了bitset优化... 附上一张bitset基本操作的表 #include<bits/stdc++.h> using namespa ...

  6. Codeforces Gym 100342J Problem J. Triatrip 三元环

    题目链接: http://codeforces.com/gym/100342 题意: 求三元环的个数 题解: 用bitset分别统计每个点的出度的边和入度的边. 枚举每一条边(a,b),计算以b为出度 ...

  7. [hdu 6184 Counting Stars(三元环计数)

    hdu 6184 Counting Stars(三元环计数) 题意: 给一张n个点m条边的无向图,问有多少个\(A-structure\) 其中\(A-structure\)满足\(V=(A,B,C, ...

  8. FJWC2019 子图 (三元环计数、四元环计数)

    给定 n 个点和 m 条边的一张图和一个值 k ,求图中边数为 k 的联通子图个数 mod 1e9+7. \(n \le 10^5, m \le 2 \times 10^5, 1 \le k \le ...

  9. 三元环HDU 6184

    HDU - 6184 C - Counting Stars 题目大意:有n个点,m条边,问有一共有多少个‘structure’也就是满足V=(A,B,C,D) and E=(AB,BC,CD,DA,A ...

随机推荐

  1. qq空间微博等更多社交平台分享

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  2. Google的JSON风格指南

    官网:https://google.github.io/styleguide/jsoncstyleguide.xml 中文版:https://github.com/darcyliu/google-st ...

  3. ganglia-monitoring-centos-linux

    http://www.tecmint.com/install-configure-ganglia-monitoring-centos-linux/ http://monitor.gitlab.net/ ...

  4. iOS Application Security

    文章分A,B,C,D 4个部分. A) iOS Application Security 下面介绍iOS应用安全,如何分析和动态修改app. 1)iOS Application security Pa ...

  5. hdu 5338 ZZX and Permutations (贪心+线段树+二分)

    ZZX and Permutations Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/O ...

  6. UVA 1356 - Bridge(自适应辛普森)

    UVA 1356 - Bridge option=com_onlinejudge&Itemid=8&page=show_problem&category=493&pro ...

  7. VC中常见API函数使用方法(经验版)

    ***********************************************声明*************************************************** ...

  8. 【转载】关于Hash

    这个HASH算法不是大学里数据结构课里那个HASH表的算法.这里的HASH算法是密码学的基础,比较常用的有MD5和SHA,最重要的两条性质,就是不可逆和无冲突.所谓不可逆,就是当你知道x的HASH值, ...

  9. Sublime Text使用

    安装Sublime Text Sublime 的安装比較简单,我们能够直接去官网http://www.sublimetext.com/,点击Download菜单.进入之后选择自己操作系统的进行下载安装 ...

  10. Ajax的简单实现

    Ajax的实现需要服务器端和客户端配合来实现 下面看服务器端的代码,也就是用php编写的一个后台脚本文件 <?php //设置页面内容,编码格式是utf8 header("Conten ...