日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdu 4587 TWO NODES 暴力枚举+tarjan

發布時間:2025/4/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu 4587 TWO NODES 暴力枚举+tarjan 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=4587

?

題意是拿掉兩個點

求最多可以把整個圖分成幾個聯通塊

?

注意到有一個模板是可以通過找割點來快速求出

“刪一個點最多可以把整個圖分成幾個聯通塊”

所以這個時候要觀察到點數只有5000

要大膽暴力枚舉另一個點

先枚舉一個點,然后另一個點套用tarjan模板

即可求出答案

?

#include <cstring> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm> #include <iostream> #include <cstdio> #include <stack> #include <vector> #include <queue> #include <map> #include <set>using namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> P;const int maxn = 5010; const int maxm = 10010;struct Edge {int to, next;bool cut; }edge[maxm]; int head[maxn], tot; int Low[maxn], DFN[maxn], Stack[maxn]; int Index, top; bool Instack[maxn]; bool cut[maxn]; int add_block[maxn]; int bridge; bool flag[maxn];void addedge(int u, int v) {edge[tot].to = v;edge[tot].next = head[u];edge[tot].cut = false;head[u] = tot++; }void Tarjan(int u, int pre) {int v;Low[u] = DFN[u] = ++Index;Stack[top++] = u;Instack[u] = true;int son = 0;for(int i = head[u]; i != -1; i = edge[i].next){v = edge[i].to;if(v == pre || flag[v] == true)continue;if(!DFN[v]){son++;Tarjan(v, u);if(Low[u] > Low[v])Low[u] = Low[v];if(Low[v] > DFN[u]){bridge++;edge[i].cut = true;edge[i^1].cut = true;}if(u != pre && Low[v] >= DFN[u]){cut[u] = true;add_block[u]++;}}else if(Low[u] > DFN[v])Low[u] = DFN[v];}if(u == pre & son > 1)cut[u] = true;if(u == pre)add_block[u] = son - 1;Instack[u] = false;top--; }void solve(int N) {int ans = 0;for(int k = 1; k <= N; k++){flag[k] = true;memset(DFN, 0, sizeof(DFN));memset(Instack, 0, sizeof(Instack));memset(add_block, 0, sizeof(add_block));memset(cut, false, sizeof(cut));for(int i = 0; i < tot; i++)edge[i].cut = false;Index = top = 0;int cnt = 0;for(int i = 1; i <= N; i++){if(flag[i])continue;if(!DFN[i]){Tarjan(i, i);cnt++;}}int anss = 0;for(int i = 1; i <= N; i++)if(flag[i] == false)anss = max(anss, cnt + add_block[i]);// if(N-1 == cnt)// ans--; ans = max(ans, anss);flag[k] = false;}printf("%d\n", ans); }void init() {tot = 0;memset(head, -1, sizeof(head)); }int main() {//freopen("in.txt", "r", stdin);//freopen("out.txt", "w", stdout);int n, m;while(scanf("%d%d", &n, &m) == 2){init();for(int i = 0; i < m; i++){int u, v;scanf("%d%d", &u, &v);u++;v++;addedge(u, v);addedge(v, u);}solve(n);}return 0; }

?

轉載于:https://www.cnblogs.com/dishu/p/4529673.html

總結

以上是生活随笔為你收集整理的hdu 4587 TWO NODES 暴力枚举+tarjan的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男女爽爽 | 欧美亚洲在线播放 | 天天综合网在线观看 | 中文字幕免费在线观看视频 | 美国av片 | 国产精品欧美激情在线 | 菲律宾黄色片 | 日韩中文字幕在线免费观看 | 污黄视频在线观看 | 成年人晚上看的视频 | 亚洲黄色网页 | 麻豆电影网站 | 久久人人爽爽人人爽人人片av | 成人国产精品入口免费视频 | 国产午夜一区二区 | 国产成人精品一区二区三区在线 | 人妻无码中文久久久久专区 | 久久综合激情 | 污的网站| 丰满人妻一区二区三区53号 | 国产精品久久久久久久蜜臀 | 欧美亚洲天堂 | 色啪视频| 日本中文在线视频 | 亚洲九九九 | 精品人妻av一区二区三区 | av日韩免费 | 亚洲中文字幕一区二区在线观看 | 91在线观看网站 | 成人a在线观看 | 撸啊撸在线视频 | 人妻巨大乳一二三区 | 星空大象在线观看免费播放 | 99热这里有 | 国产一级特黄aaa大片 | 高h奶汁双性受1v1 | 奇米成人网 | 天天插综合 | 91中文字幕视频 | 日本在线观看a | 色哟哟无码精品一区二区三区 | 亚洲欧美一级 | 国产亲伦免费视频播放 | 亚洲黄色在线视频 | 国产二页| 国产日韩91 | 波多野结衣一区二区三区四区 | 九一国产在线观看 | 天天舔天天舔 | 天堂最新资源在线 | 高清视频一区 | 2023天天操 | 97人人干| 久久久国产一区 | 国产国语亲子伦亲子 | 天天操天天射天天爱 | 韩毛片 | 国产理论精品 | 动漫裸体无遮挡 | 成人综合激情 | 极品销魂美女一区二区三区 | 精品少妇无码av无码专区 | xxx毛片| hs视频在线观看 | 成人在线免费观看网站 | 欧美黄色三级 | 久久伊人中文字幕 | 一级香蕉视频在线观看 | 天堂成人在线视频 | 美国少妇在线观看免费 | 日韩一级片免费在线观看 | 国产亚洲激情 | 91麻豆精品国产91久久久更新时间 | 农村少妇无套内谢粗又长 | 精品一区二区三区视频日产 | 不卡在线 | 天堂…中文在线最新版在线 | 日本一区二区三区四区五区 | 日韩毛片高清在线播放 | 白石茉莉奈中文字幕在 | 色婷婷aⅴ| 精品人妻一区二区三区久久夜夜嗨 | 香蕉视频在线免费播放 | 成人精品一区二区三区电影 | 欧美私人情侣网站 | 91嫩草精品| 伊人院| 一区二区三区免费看视频 | 免费日本黄色片 | yy色综合 | 欧美日韩免费一区二区三区 | 亚洲一区二区在线电影 | 久草美女 | 麻豆免费下载 | av激情网站 | 欧美日韩不卡一区 | jizz一区二区三区 | 中文字幕精品久久久 | 成人综合激情网 |