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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ4238 : 电压

發布時間:2025/4/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ4238 : 电压 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果一條邊可行,那么刪掉這條邊后,剩下的圖是二分圖且該邊的兩端點顏色相同。

那么可行的邊必然屬于所有奇環的交集,且不屬于任何偶環。

隨便取一棵生成樹,對于一條非樹邊,它形成了環:

若是偶環,則將環上的邊都標記為不能選。

若是奇環,則將環上的邊經過的奇環數都加一。

可以用樹鏈剖分維護前綴和做到$O(m\log n)$。

對于其它的環,都可以由以下三種情況得到:

1.一個奇環異或一個偶環得到一個新的奇環,公共部分一定經過了偶環,即使不標記也會被舍去。

2.一個奇環異或一個奇環得到一個新的偶環,新環上的邊一定不屬于所有奇環的交,即使不標記也會被舍去。

3.一個偶環異或一個偶環得到一個新的偶環,公共部分一定經過了偶環且被標記過了,所以無需再次標記。

因此只需要考慮所有兩兩之間異或可以表示出所有環的基環即可。

?

#include<cstdio> #define N 300010 int n,m,i,x,y,f[N],g[N],nxt[N<<1],v[N<<1],ed,son[N],size[N],d[N],dis[N],top[N],loc[N],dfn,s[2][N]; int e[N][2],need[N],ban[N],cnt,ans; int F(int x){return f[x]==x?x:f[x]=F(f[x]);} inline void add(int x,int y){v[++ed]=y;nxt[ed]=g[x];g[x]=ed;v[++ed]=x;nxt[ed]=g[y];g[y]=ed; } void dfs(int x,int y){size[x]=1,d[x]=d[f[x]=y]+1,dis[x]=dis[y]+(x<=n);for(int i=g[x];i;i=nxt[i])if(v[i]!=y){dfs(v[i],x);size[x]+=size[v[i]];if(size[v[i]]>size[son[x]])son[x]=v[i];} } void dfs2(int x,int y){top[x]=y;loc[x]=++dfn;if(son[x])dfs2(son[x],y);for(int i=g[x];i;i=nxt[i])if(v[i]!=son[x]&&v[i]!=f[x])dfs2(v[i],v[i]); } inline void modify(int x,int y,int p){for(;top[x]!=top[y];x=f[top[x]]){if(d[top[x]]<d[top[y]]){int z=x;x=y;y=z;}s[p][loc[top[x]]]++,s[p][loc[x]+1]--;}if(d[x]<d[y]){int z=x;x=y;y=z;}s[p][loc[y]]++,s[p][loc[x]+1]--; } inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';} int main(){read(n),read(m);for(i=1;i<=n;i++)f[i]=i;for(i=1;i<=m;i++){read(x),read(y),e[i][0]=x,e[i][1]=y;if(F(x)!=F(y))f[f[x]]=f[y],add(x,i+n),add(y,i+n);else need[i]=1;}for(i=1;i<=n;i++)if(!d[i])dfs(i,0),dfs2(i,i);for(i=1;i<=m;i++)if(need[i]){x=e[i][0],y=e[i][1];if((dis[x]&1)^(dis[y]&1))ban[i]=1,modify(x,y,0);else modify(x,y,1),cnt++;}for(i=2;i<=dfn;i++)s[0][i]+=s[0][i-1],s[1][i]+=s[1][i-1];for(i=1;i<=m;i++)if(need[i]){if(!ban[i]&&cnt==1)ans++;}else{if(!s[0][loc[i+n]]&&s[1][loc[i+n]]==cnt)ans++;}return printf("%d",ans),0; }

  

轉載于:https://www.cnblogs.com/clrs97/p/4737869.html

總結

以上是生活随笔為你收集整理的BZOJ4238 : 电压的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91麻豆蜜桃一区二区三区 | youjizz视频 | 成人h动漫精品一区二区无码 | 自拍偷拍欧美视频 | 欧美a级大片| 这里只有久久精品 | 蜜桃精品久久久久久久免费影院 | 大尺度舌吻呻吟声 | 久久免费大片 | 狠狠艹av | 老熟女一区二区三区 | 艳母日本动漫在线观看 | 97精品在线 | 综合九九| 91丝袜在线| 羞羞影院体验区 | 中日黄色片 | 免费污片在线观看 | 午夜av成人| 国产精品无码内射 | 免费a视频在线观看 | 麻豆免费网站 | 少妇一级淫片免费 | 免费看片亚洲 | 亚洲AV第二区国产精品 | 欧美性做爰免费观看 | 538国产精品视频一区二区 | 日剧再来一次第十集 | 91在线播放国产 | 99久久影院 | 黄色免费一级视频 | 三级影片在线免费观看 | 欧美日韩国产片 | 亚洲剧情在线 | 男女激情免费网站 | 国产一区二区三区视频在线观看 | 被扒开腿一边憋尿一边惩罚 | 国产三级免费观看 | 日本少妇做爰全过程毛片 | 久草福利资源在线观看 | 精品免费国产一区二区三区 | 日韩网| 韩日av | 中文字幕视频二区 | 欧美自拍亚洲 | h片在线免费观看 | 久久久久久久久久久久久久久久久久久久 | 日本黄色精品 | 国产精品美女久久 | 色综合久久综合 | 污视频免费在线观看网站 | 日韩经典一区二区三区 | 国产精品天天看 | 一级特级黄色片 | 精品aaa| 在线天堂中文在线资源网 | 青娱乐福利视频 | 蜜桃臀aⅴ精品一区二区三区 | 亚洲免费视频一区二区 | 超碰资源总站 | 特黄aaaaaaaaa毛片免费视频 | 韩国三级hd中文字幕有哪些 | 免费国产羞羞网站视频 | 亚洲综合在线观看视频 | 麻豆成人精品国产免费 | 国产xxxx做受性欧美88 | 青青草午夜 | 久久精品一级片 | 国产又粗又长又硬免费视频 | 蜜臀av一区二区 | 久久影院国产 | 欧美日韩一区二区三区在线视频 | 国产精彩视频一区二区 | 欧美一级片免费看 | 成人动漫在线观看 | 日本不卡视频一区 | 久久久69 | 丰满av| 在线免费观看视频你懂的 | 四虎影院在线免费播放 | 欧美色图1 | 亚洲欧美日韩精品一区 | 日本特黄一级大片 | 亚洲欧美日本一区二区三区 | 色人阁在线视频 | 爱爱小视频免费看 | 少妇在线视频 | 草草视频在线观看 | 色老板av| 美女精品久久 | 人妻av一区二区三区 | 欧美a级免费 | 青青草精品在线 | 特黄特色大片免费播放器使用方法 | 日韩欧美视频一区二区三区 | 国产片网址 | 久久九九国产精品 | 91亚洲一线产区二线产区 | 美女扒开腿让男人捅 |