zoukankan      html  css  js  c++  java
  • 稀疏图判定

    稀疏图判定

    Description

    输入一个有向图,判断这个图是不是一个稀疏图。

    这里我们定义,如果一个图的边数小于等于点数的 10 倍,我们称这个图为稀疏图,否则,这个图是稠密图。

    Input

    输入第一行一个整数 n(1 <= n <= 100) 表示图的点数。

    接下里 n 行,每行输入 n 个 0 或者 1 的整数,表示这个图的邻接矩阵。

    注意,可能存在自环,但是不算边数。

    Output

    如果输入的图是一个稀疏图,输出"Yes",否则输出"No"。

    Sample Input 1

    5
    0 0 1 1 0
    1 0 1 0 0
    1 1 0 0 1
    0 0 0 0 0
    1 1 1 1 0
    Sample Output 1

    Yes
    Sample Input 2

    12
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1
    Sample Output 2

    No
    ——摘自YCOJ
    图和树基础。
    这道题比较简单,不需要过多的考虑,先提供一个,嗯,不需要思考的程序。(伪代码,请勿参考)

    #include<bits/stdc++.h>
    using namespace std;
    int a[1000][1000];
    int main(){
    	int n;
    	cin >> n;
    	if(n*10>=n*n){
    		cout << "Yes";
    	}else{
    		cout << "No";
    	}
    	return 0;
    }
    

    嗯,没错,超级蒟蒻的代码,但为什么不会全对,请注意“自环”这个词。
    一条边的起点终点同为一个点即为“自环”。
    附赠AC代码:

    #include<iostream>
    using namespace std;
    int n;
    int a[100][100];
    int main(){
    	cin >> n ;
    	int ans = 0;
        for(int i=1;i<=n;i++){
        	for(int j=1;j<=n;j++){
        		cin >> a[i][j];
    		}
    	}
    	for(int i=0;i<n;i++){
    	for(int j=0;j<n;j++){
          if(i!=j){
    		ans+=a[i][j];
          }
        }
        }
    if(ans<=n*10){
    	cout<<"Yes"<<endl;
    }else{
    	cout<<"No"<<endl;
    }
    	return 0;
    }
  • 相关阅读:
    Microsoft Visual studio2013 在c++中引用本地文件
    二叉树遍历
    二叉搜索树、B树
    01_C语言基础
    Linux网络应用编程之集线器(Packet Tracer仿真)
    Linux网络应用编程之Packet Tracer安装及界面介绍
    Linux网络应用编程之交换机概述
    Linux网络应用编程之VLAN(Packet Tracer仿真)
    ntp服务
    Failed to mount /sysroot如何解决?
  • 原文地址:https://www.cnblogs.com/A-Konnyaku/p/11193649.html
Copyright © 2011-2022 走看看