找环 存在问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找环 存在问题相关的知识,希望对你有一定的参考价值。
#include<iostream> int num,zu; int a[50][2]={0}; int visit[11]={0}; int data[11][11]={0}; int tou=0; int wei=1; int last; int flag=0; int k=0; typedef struct node { int x; int pre; }node; node point[100000]={0}; void prin(int i) { if(i==-1) return; //printf("(%d,%d)\n",dui[i].x ,dui[i].y ); printf("%d",point[i].x); prin(point[i].pre); } void bfs() { while(tou<wei) { // while(point[tou].pre--) //{ // if(point[tou].x==point[point[tou].pre].x) // { flag=1; // last=tou; // /*printf("%d",ouwei); // printf("%d",point[wei].pre); // printf("\n");*/ // prin(last); // return; // } //} for(int k=1;k<=num;k++) { if(data[point[tou].x][k]==1) { data[point[tou].x][k]=0; point[wei].x=k; //printf("%d",point[wei].x); point[wei].pre=tou; wei++; } } tou++; } } int main() { freopen("input.txt","r",stdin); scanf("%d%d",&num,&zu); for(int i=0;i<zu;i++) { for(int j=0;j<2;j++) { scanf("%d",&a[i][j]);} } for(int i=0;i<=zu;i++) { data[a[i][0]][a[i][1]]=1; } for(int i=1;i<=num;i++) { for(int j=1;j<=num;j++) { printf("%d",data[i][j]); } printf("\n"); } for(int i=1;i<=num;i++) for(int j=1;j<=num;j++) { if(flag==0){ if(data[i][j]==1) { // data[i][j]=0; point[tou].x=i; point[tou].pre=-1; /*point[wei].x=j; point[wei++].pre=tou;*/ bfs(); } } } }
以上是关于找环 存在问题的主要内容,如果未能解决你的问题,请参考以下文章
CF1325F Ehab's Last Theorem(dfs树找环与独立集)