(HDU4324)判断一个图中是否存在两点的出度相同
2013-07-10 14:29
281 查看
题目: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);
对于判断一个图中是否存在两点的出度相同,本问题很简单,对于图中我们先用一个数组统计每个点的出度大小,然后排序,然后就可以看是否存在相
邻的两个数组值是否相等就行了。
因为每两个点一定有且仅有一条指向边,那么先假定点按顺序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 ; char str ; 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; }
相关文章推荐
- Java总哈希表的运用,判断一个数组中是否存在相同的元素之间的距离在k以内!
- Java代码 给出一个二叉树和一个数,判断该二叉树是否存在一个从根节点到叶节点的和与给出的数相同
- shell:判断一个进程是否存在
- 判断二维矩阵中是否存在连续四个相同的数
- 判断文件是否存在一个API函数
- 用PL/SQL判断一个FTP服务器上的文件是否存在
- sql判断一个表是否存在 以及表中的字段是否存在
- ibatIS的<dynamic prepend="WHERE">原理,是判断前一个AND字母是否存在
- 判断一个表中是否存在某个字段 及 判断数据库中是否有某个
- PostgreSQL判断一个表是否存在
- bash 批量判断 创建目录是否存在 很简单一个小Demo mark
- batch文件中如何判断一个变量是否存在 (注意不是变量是否有值)
- 判断两个数组中是否存在相同的数字
- 用程序判断一个QQ号码是否在线、是否存在(delphi调用webService)
- 12、一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。 请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。
- 提示用户通过键盘输入一个用户名,来判断这个用户是否存在,如果存在就显示一下用户默认的shell
- iOS如何判断一个文件夹是否存在
- python判断文件是否存在,不存在就创建一个
- String:两个字符串,判断一个中的字符是否都在另外一个存在
- 2. 编写一个Java应用程序,用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、32