題面:洛谷
題意中的要求即為割掉權值最小的割邊,所以先把圖縮點(這裡應該是邊雙連通分量),現在考慮增加一條邊會對縮點後的樹造成什麼影響,無非是成環,然後環上的邊不能割掉。現在考慮貪心,從小到大加邊,若這些邊在一條鏈上,就繼續,反之輸出答案,用\(lca\)維護即可,注意特判。
// luogu-judger-enable-o2
#include#define n 500005
#define m 1000005
using namespace std;
int n,m;
#define gc() getchar()
inline int in()
inline int min(int a,int b)
int main()
dfs(1,-1); e_tot=0; memset(h,0,sizeof(h));
for(int i=1;i<=m;++i);}}
dfs1(1,-1,0); dfs2(1,1); sort(ed+1,ed+1+ec);
int a=ed[1].u,b=ed[1].v,pre=lca(a,b); if(d[a]>d[b]) swap(a,b);
for(int i=2,u,v;i<=ec;++i)
if(p1==u&&p2==v)
if(d[p3]<=d[a])
printf("%d\n",ed[i].w); return 0;
}else
if(p3==b&&p4==b)
if(d[u]>=d[pre]&&p1==u&&p2==v) continue;
if(d[u]>=d[pre]&&p3==u&&p4==v) continue;
printf("%d\n",ed[i].w); return 0;}}
printf("-1\n");
return 0;
}
JSOI2012 玄武密碼
傳送 這道題就是乙個sam的水題 所以這也是一篇很水的部落格 我們建完sam後,把每乙個串放上去跑就行了。因為題目要求字首匹配,所以一旦失配,就直接返回了。include include include include include include include include include ...
Luogu1197 JSOI2008 星球大戰
並查集水過。想必順著題意只能暴力了,因為涉及到拆點很麻煩 所以我們反著來 笑 仔細想想,反著來不就是建點了嗎 233 於是並查集判斷聯通塊,ok大功告成 eg 那個資料範圍是真的坑!1 n 2m 硬生生看成 1 m 2n 60分re了半天.include include const int maxn...
Luogu2792 JSOI2008 小店購物
luogu2792 jsoi2008 小店購物 重題 bzoj4349 最小樹形圖 有 n 個物品,每個物品有 c i 和所需個數 k i 所有物品必須恰好買 k i 個。有 m 種優惠方案給出 x,y,w 若買過至少一件 x 物品,則 y 物品只需 w 的 w,資料中所有 x,y 不同且 x ne...