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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Loj#3077-「2019 集训队互测 Day 4」绝目编诗【结论,虚树,鸽笼原理】

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Loj#3077-「2019 集训队互测 Day 4」绝目编诗【结论,虚树,鸽笼原理】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正題

題目鏈接:https://loj.ac/p/3077


題目大意

給出nnn個點mmm條邊的一張簡單無向圖,求是否存在兩個長度相等的簡單環。

1≤n≤104,1≤m≤1061\leq n\leq 10^4,1\leq m\leq 10^61n104,1m106


解題思路

先考慮一個暴力的做法,我們暴力搜索圖上的所有環,記cic_ici?表示長度為iii的環的個數。

那么注意到一個長度為xxx的環,我們會重復統計2x2x2x次(一輪和翻轉后的一輪),所以如果cx>2xc_x>2xcx?>2x那么就可以輸出YesYesYes了。

根據鴿籠原理,我們能注意到圖上的環的總數不能超過n?2n-2n?2(長度為3~n3\sim n3n的各一個),否則答案一定是YesYesYes。然后考慮在一棵樹上,我們每加入一條邊后至少增加一個環,所以如果m≥2n?3m\geq 2n-3m2n?3的話答案一定是YesYesYes,這樣我們就成功讓mmm就和nnn同級了。

然后考慮如果我們走的每一步都能保證往后是能搜出至少一個環的話,那么一個環最多被統計2x2x2x次,也就是要搜2x22x^22x2個點,那么如果答案是NoNoNo我們就最多只需要搜∑i=1n2i2\sum_{i=1}^n2i^2i=1n?2i2也就是O(n3)O(n^3)O(n3)級別次。

那么如何保證我們走的每個點一定能搜出環,很簡單,假設我們的環從sss出發,我們走到一個點是時暴力O(n)O(n)O(n)地判斷它是否能不經過目前重復的走到sss,如果能那么它搜下去至少會有一個新的環。

這樣我們就做到O(n4)O(n^4)O(n4)的復雜度了。

然后是一個神仙優化

我們假設我們在圖上刪除n\sqrt nn?條邊,那么每條邊被刪除的概率就是1n\frac{1}{\sqrt n}n?1?,假設圖恰好長度為3~n3\sim n3n的環各有一個,那么一個長度為xxx的環沒被刪除的概率就是(1?1n)x(1-\frac{1}{\sqrt n})^x(1?n?1?)x,同理那最后圖上剩下的環的期望個數就是
∑i=3n(1?1n)i<11?(1?1n)=n\sum_{i=3}^n\left(1-\frac{1}{\sqrt n}\right)^i<\frac{1}{1-\left(1-\frac{1}{\sqrt n}\right)}=\sqrt ni=3n?(1?n?1?)i<1?(1?n?1?)1?=n?
所以刪除n\sqrt nn?條邊之后圖上期望剩下n\sqrt{n}n?個環,因為是隨機刪的,所以如果按照最優去刪除的話肯定存在一種方案使得圖上剩下不超過n\sqrt nn?個環。

然后我們指定刪一條邊肯定能刪掉一個環,所以我們只需要刪除2n2\sqrt n2n?條邊就可以使得圖上不存在任何一個環,換句話說我只需要刪除2n2\sqrt n2n?條邊就可以讓這張圖的邊數不超過n?1n-1n?1,所以這張圖的邊數不超過n?1+2nn-1+2\sqrt nn?1+2n?。

所以再換句話說,我們就得到了最重要的結論,如果圖的邊數大于等于n+2nn+2\sqrt nn+2n?那么答案肯定是YesYesYes。

所以我們只需要考慮怎么處理n+2nn+2\sqrt nn+2n?的情況,我們先找出一棵生成樹,然后對于所有的非樹邊的端點建出一棵虛樹,然后連接上非樹邊,這樣我們就得到一張邊數和點數都是n\sqrt nn?級別的圖。

不難發現我們上面那種情況也是能處理帶權圖的(需要注意的是一個長度為xxx的環出現的次數不是2x2x2x了,我們需要記錄這個環在虛樹上的邊數sss,如果存在兩種不同的邊數肯定是兩個不同的環,否則就判斷出現次數>2s>2s>2s),所以我們的復雜度就到了快速的O(n2)O(n^2)O(n2)了。

因為跑不滿并且這是LOJ所以能過。


code

#include<cstdio> #include<cstring> #include<algorithm> #include<vector> #include<cmath> using namespace std; const int N=1e4+10; struct node{int to,next,w; }a[N<<1]; int n,m,tot,cnt,ls[N],dep[N],pos[N]; int las[N],vis[N],dis[N],len[N],c[N]; vector<int> G[N]; void addl(int x,int y,int w){a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;a[tot].w=w;a[++tot].to=x;a[tot].next=ls[y];ls[y]=tot;a[tot].w=w;return; } void dfs(int x,int fa){dep[x]=dep[fa]+1;las[x]=fa;int num=0;for(int i=0;i<G[x].size();i++){int y=G[x][i];if(y==fa)continue;if(dep[y]){if(dep[y]>dep[x])continue;if(!pos[x])pos[x]=x;if(!pos[y])pos[y]=y;addl(pos[x],pos[y],1);}else{dfs(y,x);if(pos[y])num=num?-1:pos[y];}}if(!pos[x]&&num<0)pos[x]=x;if(pos[x]){for(int i=0;i<G[x].size();i++){int y=G[x][i];if(y==fa)continue;if(pos[y]&&las[y]==x)addl(pos[x],pos[y],dep[pos[y]]-dep[pos[x]]);}}else pos[x]=num;return; } bool calc(int x,int fa,int t){if(!dep[x])return 1;vis[x]=t;for(int i=ls[x];i;i=a[i].next){int y=a[i].to;if(i==fa||dep[y]>0||vis[y]==t)continue;bool flag=calc(y,i^1,t);if(flag)return 1;}return 0; } void solve(int x,int fa){if(!calc(x,fa,++cnt))return;for(int i=ls[x];i;i=a[i].next){int y=a[i].to,r=dis[x]+a[i].w;if(i==fa)continue;if(!dep[y]){if(!len[r])len[r]=dep[x]+1;if(len[r]!=dep[x]+1){puts("Yes");exit(0);}c[r]++;if(c[r]>len[r]*2){puts("Yes");exit(0);}}if(dep[y]>=0)continue;dep[y]=dep[x]+1;dis[y]=dis[x]+a[i].w;solve(y,i^1);dep[y]=-1;}return; } int main() { // freopen("4-01.in","r",stdin);scanf("%d%d",&n,&m);tot=1;if(m>n+sqrt(n)*2.0)return puts("Yes")&0;for(int i=1,x,y;i<=m;i++){scanf("%d%d",&x,&y);G[x].push_back(y);G[y].push_back(x);}for(int i=1;i<=n;i++)if(!dep[i])dfs(i,0);memset(dep,-1,sizeof(dep));for(int i=1;i<=n;i++)if(pos[i]==i)dep[i]=0,dis[i]=0,solve(i,0),dep[i]=-1;puts("No");return 0; }

總結

以上是生活随笔為你收集整理的Loj#3077-「2019 集训队互测 Day 4」绝目编诗【结论,虚树,鸽笼原理】的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美片一区二区 | 国产精品久久久毛片 | 免费一级全黄少妇性色生活片 | 无码专区久久综合久中文字幕 | 在线波多野结衣 | 成人手机在线观看 | 亚洲a在线播放 | 午夜在线免费观看视频 | 欧美日韩免费网站 | 国产毛片自拍 | 久久久久女| 日韩国产欧美视频 | 全黄一级裸体 | 国产玖玖 | 一曲二曲三曲在线观看中文字幕动漫 | 伊人22| 波多野结衣亚洲视频 | 国产精品中文字幕在线观看 | 欧美亚洲视频在线观看 | 亚洲国产精品系列 | 免费一级毛片麻豆精品 | 农村老女人av | 久久久久久久福利 | 国产精品区在线观看 | 国产码视频 | 亚洲毛片a | 禁漫天堂免费网站 | 男同毛片 | 色666| 日韩城人网站 | 免费成人电影在线观看 | 91碰在线视频 | 67194在线免费观看 | 男人日女人的网站 | 亚洲欧美日韩国产 | 黑人巨大精品 | 超碰日日夜夜 | 日韩欧美在线观看 | 久色影视| 国产人妻精品久久久久野外 | 可以免费看的黄色 | 九九综合视频 | 大陆熟妇丰满多毛xxxⅹ | 人妻少妇偷人精品久久久任期 | 久久国产视频一区 | 亚州av综合色区无码一区 | 黑人操白妞 | 欧美日韩aa| 日韩精品一区二区三区av | 国产精品午夜无码专区 | 国产视频最新 | 日本免费不卡 | 国产粉嫩在线 | 一区二区三区精品免费视频 | 和黑帮大佬的365 | 国产区欧美区日韩区 | 一区二区自拍偷拍 | 操欧美美女 | 日韩欧美激情在线 | 成年人在线免费观看 | 欧洲av在线| 成人精品影视 | xxxx国产 | 久久桃花网 | 美女福利一区 | 欧美日韩亚洲成人 | 波多野结衣在线一区 | 在线免费观看视频网站 | 日韩不卡av| 肉色超薄丝袜脚交一区二区图片 | 国产精品久久久久久白浆 | 亚洲超碰在线 | 亚洲九区 | 久久超级碰碰 | 亚洲va欧美 | xxxwww在线观看 | 日本xx片| 性a视频 | 亚洲高清二区 | av天天网| 欧美日本二区 | 97人妻精品一区二区三区动漫 | 日本高清免费aaaaa大片视频 | 色视频导航 | 天天上天天干 | 视频一区二区三 | 亚洲成a人片| 女性裸体下面张开 | 污污内射久久一区二区欧美日韩 | 偷拍视频久久 | 欧美性猛交一区二区三区精品 | 亚洲第一色网 | 在线观看国产小视频 | 影音先锋国产精品 | 欧美精品二区三区 | 亚洲影视在线 | 韩国无码一区二区三区精品 | 超碰毛片 | 邵氏电影《金莲外传2》免费观看 |