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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

UVA11324-- The Largest Clique(SCC+DP)

發(fā)布時(shí)間:2024/4/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UVA11324-- The Largest Clique(SCC+DP) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接


題意:給出一張有向圖,求一個(gè)結(jié)點(diǎn)數(shù)最大的結(jié)點(diǎn)集,使得該結(jié)點(diǎn)集中隨意兩個(gè)結(jié)點(diǎn)u和v滿足:要么u能夠到到v,要么v能夠到達(dá)u(u和v能夠互相到達(dá))

思路:我們能夠縮點(diǎn),用Tarjan求出全部強(qiáng)連通分量,讓每一個(gè)SCC的權(quán)值等于它的結(jié)點(diǎn)個(gè)數(shù)。因?yàn)镾CC圖是有一個(gè)DAG,使用DP求解。

代碼:

#include <iostream> #include <cstdio> #include <cstring> #include <vector> #include <stack> #include <algorithm>using namespace std;const int MAXN = 1005;vector<int> g[MAXN], scc[MAXN], G[MAXN]; stack<int> s; int pre[MAXN], lowlink[MAXN], sccno[MAXN], sccnum[MAXN], dfs_clock, scc_cnt; int d[MAXN]; int n, m;int Tarjan(int u) {lowlink[u] = pre[u] = ++dfs_clock;s.push(u);for (int i = 0; i < g[u].size(); i++) {int v = g[u][i]; if (!pre[v]) {Tarjan(v); lowlink[u] = min(lowlink[v], lowlink[u]);} else if (!sccno[v]) {lowlink[u] = min(lowlink[u], pre[v]); }}if (lowlink[u] == pre[u]) {scc_cnt++;for (;;) {int x = s.top(); s.pop();sccno[x] = scc_cnt;sccnum[sccno[x]]++;if (x == u) break;} } }void find_scc() {memset(pre, 0, sizeof(pre));memset(lowlink, 0, sizeof(lowlink));memset(sccno, 0, sizeof(sccno));memset(sccnum, 0, sizeof(sccnum));dfs_clock = scc_cnt = 0;for (int i = 0; i < n; i++)if (!pre[i])Tarjan(i); }int dp(int i) {int& ans = d[i]; if (ans > 0) return ans;ans = sccnum[i];for (int j = 0; j < G[i].size(); j++) {int v = G[i][j];ans = max(ans, dp(v) + sccnum[i]);}return ans; }int main() {int cas;scanf("%d", &cas);while (cas--) {scanf("%d%d", &n, &m);for (int i = 0; i < n; i++)g[i].clear();int u, v;for (int i = 0; i < m; i++) {scanf("%d%d", &u, &v); u--;v--;g[u].push_back(v);}find_scc();memset(d, -1, sizeof(d));memset(G, 0, sizeof(G));for (int u = 0; u < n; u++) {for (int i = 0; i < g[u].size(); i++) {int v = g[u][i]; if (sccno[u] != sccno[v]) G[sccno[u]].push_back(sccno[v]); } } int ans = 0;for (int i = 1; i <= scc_cnt; i++) ans = max(ans, dp(i));printf("%d\n", ans);}return 0; }

總結(jié)

以上是生活随笔為你收集整理的UVA11324-- The Largest Clique(SCC+DP)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 熟女高潮一区二区三区视频 | 激情综合网av | 这里只有精品久久 | 国产精品v亚洲精品v日韩精品 | 中文字幕33页 | 欧美大片免费看 | 日韩视频免费在线 | 欧美视频在线观看 | 欧美一级免费在线 | 糖心vlog精品一区二区 | 欧亚av在线 | 欧美日韩中文字幕视频 | 骚狐网站 | 中文在线天堂网 | 久久婷婷热 | av色图片 | 免费视频99 | 国产亚洲精品久久久久久久 | 免费成人深夜夜国外 | 亚洲二级片 | 国产女主播一区二区 | 最新欧美大片 | 国产农村老头老太视频 | 欧美变态口味重另类在线视频 | 91av毛片| 日本a视频在线观看 | 欧美激情一区二区三区在线 | 久久发布国产伦子伦精品 | 少妇性bbb搡bbb爽爽爽欧美 | 色爱视频 | av性色| 成人深夜小视频 | 大屁股白浆一区二区 | 国产精品久久在线 | 蜜桃一二三区 | 日韩中文字幕一区 | 91成人破解版| 国产男男一区二区三区 | 亚洲激情二区 | 狂野欧美 | 特大黑人巨交吊性xx | 午夜在线精品偷拍 | 无码粉嫩虎白一线天在线观看 | 亚洲国产欧洲 | 蜜臀在线播放 | 久久爱一区二区 | 妖精视频在线观看免费 | 亚洲第二色 | 午夜电影网站 | 99久在线精品99re8热 | 夜夜狠狠擅视频 | 精品欧美乱码久久久久久 | 欧美亚洲色综久久精品国产 | 亚洲国产精品电影 | 日本乱论视频 | 十大黄台在线观看 | 亚洲少妇xxx| 亚洲精品久久视频 | 中文字幕日韩精品无码内射 | 91在线观看免费高清完整版在线观看 | 麻豆免费在线播放 | 免费一级做a爰片久久毛片潮 | 久久夜靖品2区 | 欧美与黑人午夜性猛交久久久 | 国产鲁鲁视频在线观看免费 | 欧美另类z0zx974 | 丰满人妻一区二区三区免费视频 | 欧美一区二区久久久 | 粉嫩欧美一区二区三区 | 亚洲天堂视频一区 | 国产v综合v亚洲欧美久久 | 西西大胆午夜视频 | 极品国产一区 | 一进一出好爽视频 | av白浆| 欧美v在线 | 欧美成人自拍视频 | 国产一区二区三区自拍 | 69av网站| 66亚洲一卡2卡新区成片发布 | 日韩av无码一区二区三区不卡 | 欧美性受xxxxxx黑人xyx性爽 | 日韩一区二区三区高清 | www在线观看免费视频 | 国产精品久久久久影院色老大 | 黄色福利视频网站 | 国产调教视频在线观看 | 强制高潮抽搐哭叫求饶h | 国产精品久久久久久久久免费 | 亚洲黄在线| 黄页嫩草| 蜜桃视频一区二区 | 亚洲高清天堂 | 男女网站在线观看 | 亚洲一区二区不卡在线观看 | 日韩一页 | 99爱在线 | 91狠狠爱 | 国产亚洲精品久久久久久青梅 |