bzoj2438: [中山市選2011]殺人遊戲(強聯通)
題目傳送門
強啊。
解法:
強聯通還是蠻好看出來的呀。
然後yy了一個解法錯了半天。
然後艹哥告訴我有特殊情況?!
那麼相對於每一個聯通塊。如果他的入度為0那麼肯定從它開始問呀。
因為入度不為0的話你問別人肯定問的到它。
所以相對於每一個入度為0的塊就有機會被殺死。
如果有一個大小為1的連通塊且它入度為0、無出度或者連到的連通塊都還有別人連它
那它就可以不選 ans-
程式碼實現:
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
struct node {int x,y,next;}a[310000],e[310000];int len,last[110000];
void ins(int x,int y) {len++;a[len].x=x;a[len].y=y;a[len].next=last[x];last[x]=len;}
int elen,last1[110000];void ins1(int x,int y) {elen++;e[elen].x=x;e[elen].y=y;e[elen].next=last1[x];last1[x]=elen;}
int low[110000],dfn[110000],sta[110000],tp,cnt,id,s[110000],belong[110000];bool v[110000];
void dfs(int x) {
low[x]=dfn[x]=++id;sta[++tp]=x;v[x]=true;
for(int k=last[x];k;k=a[k].next) {
int y=a[k].y;if(dfn[y]==-1){dfs(y);low[x]=min(low[x],low[y]);}
else if(v[y]==true)low[x]=min(low[x],dfn[y]);
}
if(low[x]==dfn[x]) {int i;cnt++;do {i=sta[tp--];v[i]=false;belong[i]=cnt;s[cnt]++;}while(i!=x);}
}
int ru[110000],tot[110000];
int check(int x) {
if(s[belong[x]]!=1||ru[belong[x]]!=0)return 0;
for(int k=last[x];k;k=a[k].next)if(ru[belong[a[k].y]]==1)return 0;
return 1;
}
int main() {
int n,m;scanf("%d%d",&n,&m);
len=0;memset(last,0,sizeof(last));
for(int i=1;i<=m;i++) {int x,y;scanf("%d%d",&x,&y);ins(x,y);}
memset(s,0,sizeof(s));memset(dfn,-1,sizeof(dfn));
cnt=id=tp=0;memset(v,false,sizeof(v));memset(sta,0,sizeof(sta));
for(int i=1;i<=n;i++)if(dfn[i]==-1)dfs(i);
memset(ru,0,sizeof(ru));
for(int i=1;i<=len;i++) if(belong[a[i].x]!=belong[a[i].y])ru[belong[a[i].y]]++;
int ss=0,ans=0;for(int i=1;i<=cnt;i++) if(ru[i]==0)ans++;
for(int i=1;i<=n;i++)if(check(i)==1){ans--;break;}
printf("%.6lf\n",double(n-ans)/double(n));
return 0;
}
相關文章
- 殺人遊戲遊戲
- 職場上的“殺人”遊戲(轉載)遊戲
- 【Tarjan SCC 加邊使得所有圖聯通 至少選取多少個點能圖聯通 】Network of Schools加強版.md
- 從“殺人遊戲”來看SOA的實施遊戲
- 殺人遊戲(hdu2211)插入法遊戲
- 遊戲目標的篩選、建立、強化遊戲
- 中國行動通訊聯合會&當樂網:2011年度中國移動遊戲產業報告遊戲產業
- 樂訊通雲通訊:如何選擇物聯網路卡
- 女quan、遊戲媒體和網路暴力是如何殺人的遊戲
- 樂訊通雲通訊:智慧裝置選擇物聯卡的理由
- Zotero Translate 聯動 DeepL翻譯 強強聯手
- 角川、索尼、CyberAgent結成資本聯盟 聯手強化遊戲/動漫業務遊戲
- 兩少年沉迷網路遊戲 效仿網遊殺人焚屍練膽遊戲
- IoT物聯網無線通訊模組該如何選擇?
- 讓玩家在遊戲裡殺人作惡 這款“18+”的偵探遊戲能否成功自救?遊戲
- OKR與Scrum如何強強聯手OKRScrum
- 火車站殺人事件事件
- 圖之強連通、強連通圖、強連通分量 Tarjan演算法演算法
- 強連通------tarjan演算法詳解及與縮點聯合運用演算法
- 《江蘇聯通資料安全體系建設》入選“星河”優秀案例
- 威聯通NAS維修
- 全球雲遊戲產業聯盟(GCGA)正式成立 完美世界CEO蕭泓當選聯盟理事長遊戲產業GC
- 最高5000元!中山市釋出汽車專項消費券
- DiT:Transformers 與擴散模型強強聯手ORM模型
- 強強聯手 加速商用電腦技術革命
- 抓間諜(強連通)
- bzoj2427: [HAOI2010]軟體安裝(強聯通+樹形Dp)
- Ignite:2011年4月Facebook品牌50強
- 2011年韓遊戲公司營收排行遊戲營收
- React 折騰記 - (4) 側邊欄聯動Tabs選單-增強版(結合Mobx)React
- 樂訊通雲通訊:物聯網路卡在車聯網的應用
- 樂訊通雲通訊:物聯網路卡在車聯網中的作用
- 企業專線頻寬安裝,選電信、聯通還是移動?——VecloudCloud
- 阿里雲恩智浦強強聯手給物聯網一個安全保護傘阿里
- Rust vs. Go:為什麼強強聯合會更好RustGo
- Annie&iResearch:2011年度IOS營收全球50強開發者iOS營收
- 電信聯通合併原因分析 聯通和電信合併是真的嗎?
- WPF TreeView級聯複選View