小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

TZOJ6556: 嗅探器

 新進(jìn)小設(shè)計(jì) 2022-08-16 發(fā)布于北京

最近在練Tarjan,看到這道題目分類(lèi)在割點(diǎn)里面就想嘗試做一下,點(diǎn)開(kāi)發(fā)現(xiàn)題目數(shù)據(jù)范圍竟然如此之小,算了,bfs暴力一發(fā)。

題目意思就是你需要找到一個(gè)關(guān)鍵節(jié)點(diǎn),也可以理解成,行軍打仗時(shí)必需經(jīng)過(guò)的地方,敵軍想從a點(diǎn)到b點(diǎn)必需經(jīng)過(guò)的節(jié)點(diǎn),在這個(gè)地方你一定能阻擊到敵軍,我感覺(jué)我比喻的應(yīng)該還算形象。

既然如此,要找最小的這種節(jié)點(diǎn),我們可以把節(jié)點(diǎn)1到n開(kāi)始枚舉,如果不經(jīng)過(guò)這個(gè)節(jié)點(diǎn)所相連的邊還能到達(dá)終點(diǎn),那么這個(gè)節(jié)點(diǎn)就是不合理的,反之,能到達(dá)終點(diǎn),這個(gè)節(jié)點(diǎn)就是合理的。

#include<bits/stdc++.h>
using namespace std;
int visit[1000];
vector<int> vec[1000];
int n;

void bfs(int s,int limit){
	memset(visit,0,sizeof(visit));
	queue<int> q;
	q.push(s);
	visit[s]=1;
    while(!q.empty()){
    	int from=q.front();
    	q.pop();
    	for(int i=0;i<vec[from].size();++i){
    		int to=vec[from][i];
    		if(!visit[to]&&to!=limit){  //不能經(jīng)過(guò)限制節(jié)點(diǎn)
    			//cout<<to<<endl;
    			visit[to]=1;
    			q.push(to);
			}
		}
	}
}

int main(){
	scanf("%d",&n);
	int x,y;
	while(~scanf("%d%d",&x,&y)&&x+y!=0){
		vec[x].push_back(y);
		vec[y].push_back(x);
	}
	int a,b;
	scanf("%d%d",&a,&b);
    for(int i=1;i<=n;++i){
    	if(i==a||i==b)  continue;
        bfs(a,i);
        if(!visit[b]){
        	cout<<i<<endl;return 0;
		} 
	}
	cout<<"No solution"<<endl;
}

  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多