(HDU4324)判断一个图中是否存在两点的出度相同
题目:Triangle LOVE
因为每两个点一定有且仅有一条指向边,那么先假定点按顺序1,2,....n,每个点一定指向后面的点,即1指向2,3,4.....n,2指向3,4,5....n。。。。。那么
每个点的出度分别为n-1,n-2,n-3,....0,而此时任意反向一条边都能够得到一个环,因为反向了一条边,则这条边的两个的出度一个加1一个减1,使得所
有点中一定存在两个点的出度相同。那么对于其他有向图都可以由【元图】反向某些边得到,所以只要用反证法,如果所有点里面没有两个点的出度
相同则肯定不存在环,否则存在。时间复杂度O(n);
对于判断一个图中是否存在两点的出度相同,本问题很简单,对于图中我们先用一个数组统计每个点的出度大小,然后排序,然后就可以看是否存在相
邻的两个数组值是否相等就行了。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int N=2500;
int out[N];
char str[N][N];
int main()
{
int i,j,k,n,m,T;
scanf("%d",&T);
char c;
int t=1;
while(T--)
{
scanf("%d",&n);
memset(out,0,sizeof(out));
for(i=0;i<n;i++)
scanf("%s",str[i]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(str[i][j]=='1')
out[i]++;
sort(out,out+n);
bool flag=false;
for(i=0;i<n-1;i++)
{
if(out[i]==out[i+1])
{
flag=true;
break;
}
}
printf("Case #%d: ",t++);
printf("%s\n",flag?"Yes":"No");
}
return 0;
}
(HDU4324)判断一个图中是否存在两点的出度相同相关推荐
- 判断一个图中有无环路的存在
这里要引入两个概念: 1.树边:是一条未被遍历过的边,它指向一个未被访问过的点. 2.反向边:是一条未被遍历过的边,它指向一个被访问过的点. 如果图中有环路的存在,那么环路的最后一个边必然是一条反向边 ...
- 判断一个图是否为树(有向图以及无向图)
整理的算法模板合集: ACM模板 目录 判断一个图是否为树 1. 无向图(hdu 1272 小希的迷宫) 2. 有向图(hdu 1325 Is It A Tree?) 判断一个图是否为树 1. 无向图 ...
- Java:判断一个字符串中是否存在另一个字符子串以及判断一个字符串中是否存在指定字符
Java:判断一个字符串中包含指定字符子串,判断一个字符串中存在指定字符 字符串的contains方法可以判断一个字符串中是否存在另一个字符子串,示例如下 String Str = "Hel ...
- java怎么统计随机数出现次数,Excel统计出现次数、个数的VBA代码 java中怎么判断一个字符串中包含某个字符或字...
延伸:java中怎么判断一个字符串中包含某个字符或字符 描述:...一个字符串中包含某个字符的单词说出现的次数 c#什么方法可以判断字符串中包含某个字符的个数? JAVA判断字符串数组中是否包含某字符 ...
- 判断图有无环_【转】判断一个图是否有环 无向图 有向图
无向图: 法1: 如果存在回路,则必存在一个子图,是一个环路.环路中所有顶点的度>=2. n算法: 第一步:删除所有度<=1的顶点及相关的边,并将另外与这些边相关的其它顶点的度减一. 第二 ...
- C#判断一个类中有无指定名称的方法
C#中可以通过反射分析元数据来解决这个问题,示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...
- 判断一个图是否有环(有向图,无向图)
无向图: 法1: 如果存在回路,则必存在一个子图,是一个环路.环路中所有顶点的度>=2. n算法: 中 第一步:删除所有度<=1的顶点及相关的边,并将另外与这些边相关的其它顶点的度减一 ...
- java 检测表情符号_hutool工具包:判断一个字符串中是否包含emoji表情符号(emoji-java)...
需求: 判断一个字符串中是否包含emoji表情符号. 工具: hutool工具包,emoji-java工具包 cn.hutool hutool-all 5.3.7 com.vdurmont emoji ...
- Python课堂笔记之判断一个数组中是否含有数字0
判断一个数组中是否含有数字0的3种方法: lst1=[1,3,4] lst2=[0,6,7] lst3=[[1,3,4],[0,6,7]]#1.如果有0,True for i in range(2): ...
最新文章
- 科普帖:Linux操作系统
- 如何查询当前表空间下所有实例_详解人大金仓MPP数据库并行查询技术
- 背景全透明 background: transparent
- ORA-04031错误导致宕机案例分析
- mysql对库授权alter_mysql 数据库授权(给某个用户授权某个数据库)
- java服务器和linux_在Linux下开一个Java服务器(使用CatServer Pro)
- java ppt控件_Java版PPT操作控件Spire.Presentation v3.3.5新版来袭!支持转换GroupShape到图片...
- mysql then_mysql语法之case when then与列转行
- cannot import name 'StrictRedis' from 'redis'
- Mugeda (木疙瘩)H5案例课—交互动画类H5制作-岑远科-专题视频课程
- 前端 HTML5+CSS3基础知识一
- 【Matlab】图像裁剪函数imcrop的原点、长度、宽度问题
- 【FPGA】VGA驱动:行同步时序+场同步时序
- 13. nginx四层 https代理https 前后端证书配置
- 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest F.Philosopher’s Walk
- 4、OOA 面向对象分析
- 【Parsec + ZeroTier】校园网内免费远程桌面(支持游戏)
- EasyX学习笔记(二、黑客帝国数据流)
- java caller_java – sun.reflect.CallerSensitive注释是什么意思?
- 微信开发.Net 接入示例