日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > bzoj 1023 仙人掌圖

bzoj 1023 仙人掌圖

來源:程序員人生   發布時間:2015-03-10 08:29:06 閱讀次數:3168次

Description

求1個神仙掌圖的直徑

Solution

神仙掌圖有個性質,1條邊要末是割邊要末就是在環內,那末我們可以對它進行Dp辣!

f[u]u

如果u?v是橋的話轉移就是ans=max(ans,f[u]+f[v]+1)f[u]=max(f[u],f[v]+1),由于當前f[u]都是由它的孩子更新來的

如果是環的話,變環為鏈,用單調隊列dp出ans,然后用環上的f值更新f[u]的值就能夠了,具體實現見代碼

Code

#include <bits/stdc++.h> using namespace std; const int N = 100005, M = N << 1; int ans, ind, tot, cnt, fa[N], cir[N << 1], to[M << 1], nxt[M << 1], head[N], dfn[N], low[N], f[N]; inline int read(int &t) { int f = 1;char c; while (c = getchar(), c < '0' || c > '9') if (c == '-') f = -1; t = c - '0'; while (c = getchar(), c >= '0' && c <= '9') t = t * 10 + c - '0'; t *= f; } struct data { int p, w; }q[N]; void add(int u, int v) { to[tot] = v, nxt[tot] = head[u], head[u] = tot++; to[tot] = u, nxt[tot] = head[v], head[v] = tot++; } void gao() { int h = 1, r = 1; for (int i = 1; i <= cnt; ++i) cir[cnt + i] = cir[i]; for (int i = 1; i <= (cnt << 1); ++i) { while (h < r && i - q[h].p > cnt / 2) ++h; while (h < r && q[r].w <= f[cir[i]] - i) --r; q[++r].p = i, q[r].w = f[cir[i]] - i; ans = max(ans, f[cir[i]] + i + q[h].w); } } void dfs(int u) { low[u] = dfn[u] = ++ind; for (int i = head[u], v; ~i; i = nxt[i]) { v = to[i]; if (fa[v] != 0 && v != fa[u]) low[u] = min(low[u], dfn[v]); if (fa[v] == 0) { fa[v] = u; dfs(v); low[u] = min(low[u], low[v]); } } for (int i = head[u], v; ~i; i = nxt[i]) { v = to[i]; if (fa[v] == u && low[v] > dfn[u]) { //bridge ans = max(ans, f[u] + f[v] + 1); f[u] = max(f[u], f[v] + 1); } if (fa[v] != u && dfn[u] < dfn[v]) { //circle cnt = 0; while (v != fa[u]) cir[++cnt] = v, v = fa[v]; gao(); for (int j = 1; j < cnt; ++j) f[u] = max(f[u], f[cir[j]] + min(j, cnt - j)); } } } int main() { int n, m; memset(head, -1, sizeof(head)); read(n), read(m); for (int i = 1, x, y, z; i <= m; ++i) { read(x), read(y); for (int j = 1; j < x; ++j) { read(z); add(y, z); y = z; } } fa[1] = -1; dfs(1); printf("%d ", ans); return 0; }
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 麻豆av免费| 国产精品久久久久久影视 | 精品国产乱码久久久久久蜜臀 | 亚洲人成电影 | 免费看黄a | 性欧美高清come | 精品一区视频 | 在线视频福利 | 国产精品久久综合 | 污污视频免费网站 | 午夜av电影 | 不用播放器看av | 欧美特级 | 蜜桃精品久久久久久久免费影院 | 狠狠操很很干 | 99久久爱 | 国产精品99久久久久久动医院 | 91视频在 | 久热精品在线 | 亚洲高清自拍 | 午夜视频一区 | 91精品国产高清一区二区三区 | 欧美精品在线一区二区三区 | 成人精品网站在线观看 | 在线免费国产 | 一级性 | 色婷婷999| 中文字幕偷拍 | 天天揉久久久久亚洲精品 | 欧美 日韩 中文字幕 | av入口| 国产高清免费 | 免费国产羞羞网站视频 | 欧美日韩亚洲国产精品 | 在线视频91 | 99精品视频在线免费观看 | 久久国产精品一区 | 国产美女久久 | 成人av观看| 麻豆精品国产91久久久久久 | 在线播放一区二区三区 |