bzoj4484 jsoi2015 最小表示

2022-04-06 13:32:54 字數 2000 閱讀 5465

time limit:

20 sec  memory limit:

512 mb

submit:

432  solved:

223[submit][status][discuss]【故事背景】

還記得去年jyy所研究的強連通分量的問題嗎?去年的題目裡,jyy研究了對於有向圖的「加邊」問題。對於圖論有著強烈興趣的jyy,今年又琢磨起了「刪邊」的問題。

【問題描述】

對於乙個n個點(每個點從1到n編號),m條邊的有向圖,jyy發現,如果從圖中刪去一些邊,那麼原圖的連通性會發生改變;而也有一些邊,刪去之後圖的連通性並不會發生改變。

jyy想知道,如果想要使得原圖任意兩點的連通性保持不變,我們最多能刪掉多少條邊呢?

為了簡化一下大家的工作量,這次jyy保證他給定的有向圖一定是乙個有向無環圖(jyy:大家經過去年的問題,都知道對於給任意有向圖的問題,最後都能轉化為有向無環圖上的問題,所以今年jyy就乾脆簡化一下大家的工作)。

輸入一行包含兩個正整數n和m。

接下來m行,每行包含兩個1到n之間的正整數x_i和y_i,表示圖中存在一條從x_i到y_i的有向邊。

輸入資料保證,任意兩點間只會有至多一條邊存在。

n<=30,000,m<=100,000

輸出一行包含乙個整數,表示jyy最多可以刪掉的邊數。

5 61 2

2 33 5

4 51 5

1 32

by 佚名上傳

[submit][status][discuss]

題解 :

cmp函式:不加型別的話本地不會編譯錯誤,(il好像也是);

刪邊互相之間是無影響的,所以可刪就刪,和順序無關; 

由於沒有重邊的無環dag,一條邊可刪即這條邊的u,v有另一種方式到達;

dag轉成topsort序列,bitset優化n*m連通性dp

$o( \frac + m*logm)$

//畢姥爺說得對,還是寫一下的好,不然連bitset的空間都不會開(和vector一樣);

20181031

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include11

#define rg register

12#define il inline

13#define run(i,l,r) for(int i=l;i<=r;i++)

14#define don(i,l,r) for(int i=l;i>=r;i--)

15#define ll long long

16#define ld long double

17#define inf 0x3f3f3f3f

18using

namespace

std;

19const

int n=30001 , m=100010

;20 bitsetf[n];

21int

n,m,o,hd[n],st[n],id[n],d[n],idx,q[n],t,w;

22 vectorg[n];

23char

gc()

28int

rd()

34 il bool cmp(const

int &a,const

int &b)

35 il void

topsort()45}

46}47}

48int

main()

57topsort();

58for(rg int i=1;i<=n;i++)

61int ans=0;62

for(rg int i=n;i;i--)else72}

73}74 cout

75return0;

76 }//

by tkys_austin;

view code

bzoj4484 JSOI2015 最小表示

給出一張dag,要求刪除盡量多的邊使得連通性不變.即 若刪邊前u到v有路徑,則刪邊後仍有路徑 點數30000,邊數100000.如果從u到v有 u,v 這條邊,且從u到v只有這一條路徑,那麼這條邊必須保留.否則這條邊一定可以刪除.因為如果有不止一條路徑從u到v,必然存在點x x u,x v 使得u可...

Bzoj4484 Jsoi2015 最小表示

time limit 20 sec memory limit 512 mb submit 103 solved 65 故事背景 還記得去年jyy所研究的強連通分量的問題嗎?去年的題目裡,jyy研究了對於有向圖的 加邊 問題。對於圖論有著強烈興趣的jyy,今年又琢磨起了 刪邊 的問題。問題描述 對於乙...

小店購物 JSOI2008 BZOJ 2260

grant是乙個個體戶老闆,他經營的小店因為其豐富的優惠方案深受附近居民的青睞,生意紅火。小店的優惠方案十分簡單有趣。grant規定 在一次消費過程中,如果您在本店購買了精製油的話,您購買香皂時就可以享受2.00元 塊的 如果您在本店購買了香皂的話,您購買可樂時就可以享受1.50元 聽的 諸如此類的...