洛谷 P1656 炸铁路

来源:互联网 发布:js里的confirm方法 编辑:程序博客网 时间:2024/04/27 19:46

拿到题目第一反应是对偶图,然而发现根本不是这样的。

毫无思路的时候,发现数据只有150个。

打了个暴力,没想到AC了。。

而且最后一个点才跑了21ms。数据有点水。。

枚举每一条边,然后炸掉,跑一边图,看看有没有点到不了。


#include<iostream>#include<cstdio>#include<string.h>using namespace std;int n,m,a,b;bool map[151][151],visited[151];void dfs(int x){int i;visited[x]=true;for(i=1; i<=n; i++)if(map[x][i]==true && visited[i]==false)dfs(i);return;}void read(){int i,j,k;cin>>n>>m;for(i=1; i<=m; i++){scanf("%d%d",&a,&b);map[a][b]=true;map[b][a]=true;//无向图 }for(i=1; i<=n-1; i++)for(j=i+1; j<=n; j++)if(map[i][j]==true)//有边可走{map[i][j]=false;map[j][i]=false;memset(visited,false,sizeof(visited));//初始化 dfs(1);for(k=1; k<=n; k++)if(visited[k]==false){cout<<i<<" "<<j<<endl;break;}//判断有没有点到不了 map[i][j]=true;map[j][i]=true;} return;}int main(){read();return 0;}

AC代码。

0 0
原创粉丝点击