[SOJ] DAG?
生活随笔
收集整理的這篇文章主要介紹了
[SOJ] DAG?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Description
//有向無(wú)環(huán)圖至少又一個(gè)只有入邊沒(méi)有出邊的點(diǎn) #include<iostream> #include<memory> using namespace std;const int MAX = 102; int n, m; int edge[MAX][MAX]; bool isPoint[MAX];void find_Point() {for(int j=1;j<=n;j++){int sum=0;for(int i=1;i<=n;i++)sum+=edge[j][i];if(sum==0)isPoint[j]=true;} }bool isDAG() {for(int i=1;i<=n;i++)if(isPoint[i])return false;return true; }int main() {memset(isPoint, false, sizeof(isPoint));memset(edge, 0, sizeof(edge));cin>>n>>m;for(int i=1;i<=m;i++){int a, b;cin>>a>>b;edge[a][b]=1;edge[b][a]=1;}find_Point();if(!isDAG())cout<<"1"<<endl;else cout<<"0"<<endl;return 0; }
輸入一個(gè)有向圖,判斷該圖是否是有向無(wú)環(huán)圖(Directed Acyclic Graph)。
Input輸入的第一行包含兩個(gè)整數(shù)n和m,n是圖的頂點(diǎn)數(shù),m是邊數(shù)。1<=n<=100,0<=m<=10000。
接下來(lái)的m行,每行是一個(gè)數(shù)對(duì)u v,表示存在有向邊(u,v)。頂點(diǎn)編號(hào)從1開(kāi)始。 Output如果圖是DAG,輸出1,否則輸出0
Sample Input ?Copy sample input to clipboard 3 3 1 2 2 3 3 1 Sample Output 0//有向無(wú)環(huán)圖至少又一個(gè)只有入邊沒(méi)有出邊的點(diǎn) #include<iostream> #include<memory> using namespace std;const int MAX = 102; int n, m; int edge[MAX][MAX]; bool isPoint[MAX];void find_Point() {for(int j=1;j<=n;j++){int sum=0;for(int i=1;i<=n;i++)sum+=edge[j][i];if(sum==0)isPoint[j]=true;} }bool isDAG() {for(int i=1;i<=n;i++)if(isPoint[i])return false;return true; }int main() {memset(isPoint, false, sizeof(isPoint));memset(edge, 0, sizeof(edge));cin>>n>>m;for(int i=1;i<=m;i++){int a, b;cin>>a>>b;edge[a][b]=1;edge[b][a]=1;}find_Point();if(!isDAG())cout<<"1"<<endl;else cout<<"0"<<endl;return 0; }
轉(zhuǎn)載于:https://www.cnblogs.com/KennyRom/p/6244493.html
總結(jié)
以上是生活随笔為你收集整理的[SOJ] DAG?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Centos升级Python 2.7并安
- 下一篇: ajax上传plupload的使用