图论--传递闭包(Floyd模板)
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int dp[105][105],in[105],out[105];
int init()
{
for(int i=1;i<=105;i++)
{
in[i]=0;
out[i]=0;
for(int j=1;j<=100;j++)
{
dp[i][j]=0;
}
}
}
int main()
{
long long t;
cin>>t;
while(t--)
{
init();
long long n,m;
cin>>n>>m;
long long flag=0;
for(int i=1;i<=m;i++)
{
long long l,r;
cin>>l>>r;
dp[l][r]=1;
if(l==r) flag=1; //自己排在自己前面是不可能的,直接按题意输出0
}
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
dp[i][j]=(dp[i][k]&&dp[k][j]);//floyd 讨论图的连通性
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(dp[i][j]==1&&dp[j][i]==1)
flag=1;
//floyd 讨论图的连通性后,如果出现环的话,就是我排在你前面。你排在我前面,同样不可能
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(dp[i][j]==1)
{
in[i]++; //有几个人排在第I个人前面
out[j]++;//有几个人排在第j个人后面面
}
if(flag) //不符合现实的按题意输出0
{
for(int i=1;i<=n;i++)cout<<"0";
cout<<endl;
}
else
{
for(int i=1;i<=n;i++)
{
if(in[i]>=(n+1)/2||out[i]>=(n+1)/2) cout<<"0";
//如果在他前面或者在他后面的不等于一般的人数,他绝对不是中间位置
else cout<<"1";
}
cout<<endl;
}
}
return 0;
}
图论--传递闭包(Floyd模板)的更多相关文章
- 图论算法-Tarjan模板 【缩点;割顶;双连通分量】
图论算法-Tarjan模板 [缩点:割顶:双连通分量] 为小伙伴们总结的Tarjan三大算法 Tarjan缩点(求强连通分量) int n; int low[100010],dfn[100010]; ...
- 图论--最小环--Floyd模板
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> ...
- 图论(floyd算法):NOI2007 社交网络
[NOI2007] 社交网络 ★★ 输入文件:network1.in 输出文件:network1.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 在社交网络( ...
- Treasure Exploration---poj2594(传递闭包Floyd+最小路径覆盖)
题目链接:http://poj.org/problem?id=2594 在外星上有n个点需要机器人去探险,有m条单向路径.问至少需要几个机器人才能遍历完所有的点,一个点可以被多个机器人经过(这就是和单 ...
- POJ3660 传递闭包———floyd算法
POJ3660 Cow Contest 题目链接:http://poj.org/problem?id=3660 题意:农名约翰有些奶牛,约翰通过让他们决斗来决定他们的排名,约翰让这些奶牛一对一打完一定 ...
- POJ 3660 Cow Contest 传递闭包+Floyd
原题链接:http://poj.org/problem?id=3660 Cow Contest Time Limit: 1000MS Memory Limit: 65536K Total Subm ...
- Floyd模板(详细操作最基础版)
#include<cstdio> #include<iostream> using namespace std; #define MAX 500 #define INFE 1& ...
- 【图论】Floyd消圈算法
毫无卵用的百度百科 Definition&Solution 对于一个给定的链表,如何判定它是否存在环以及环的长度问题,可以使用Floyd消圈算法求出. 从某种意义上来讲,带环的链表在本质上是一 ...
- [bzoj2208][Jsoi2010]连通数_bitset_传递闭包floyd
连通数 bzoj-2208 Jsoi-2010 题目大意:给定一个n个节点的有向图,问每个节点可以到达的点的个数和. 注释:$1\le n\le 2000$. 想法:网上有好多tarjan+拓扑序dp ...
随机推荐
- 家庭记账本app进度之android中AlertDialog的相关应用以及对日期时间的相关操作(应用alertdialog使用的谈话框)
对于AlertDialog的相关知识: 1.创建构造器AlertDialog.Builder的对象: 2.通过构造器对象调用setTitle.setMessage.setIcon等方法构造对话框 ...
- 并发——深入分析ThreadLocal的实现原理
一.前言 这篇博客来分析一下ThreadLocal的实现原理以及常见问题,由于现在时间比较晚了,我就不废话了,直接进入正题. 二.正文 2.1 ThreadLocal是什么 在讲实现原理之前, ...
- Java中的垃圾回收算法详解
一.前言 前段时间大致看了一下<深入理解Java虚拟机>这本书,对相关的基础知识有了一定的了解,准备写一写JVM的系列博客,这是第二篇.这篇博客就来谈一谈JVM中使用到的垃圾回收算法. ...
- readelf命令
//查看文件头信息 readelf -h [file] //查看文件依赖的动态库 readelf -d [file] //查看文件中的符号 readelf -s [file]
- Java匹马行天下之JavaSE核心技术——异常处理
Java匹马行天下之JavaSE核心技术——异常处理 异常的简介 在Java中,异常就是Java在编译.运行或运行过程中出现的错误. 程序错误分为三种:编译错误.运行时错误和逻辑错误 编译错误是因为程 ...
- 14.移动端图片浏览组件 react-wx-images-viewer
安装 npm install --save react-wx-images-viewer 使用 import WxImageViewer from 'react-wx-images-viewer'; ...
- python 工具链 虚拟环境和包管理工具 pipenv
Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, ...
- 大数据Hbase相关运维题
1.启动先电大数据平台的 Hbase 数据库,其中要求使用 master 节点的RegionServer.在 Linux Shell 中启动 Hbase shell,查看 HBase 的版本信息.(相 ...
- TensorFlow keras读取图片
from tensorflow.python.keras.preprocessing.image import load_img,img_to_array def main(): #tagert_si ...
- PyTorch中在反向传播前为什么要手动将梯度清零?
对于torch中训练时,反向传播前将梯度手动清零的理解 简单的理由是因为PyTorch默认会对梯度进行累加.至于为什么PyTorch有这样的特点,在网上找到的解释是说由于PyTorch的动态图和aut ...