2020hdoj暑假多校第六場

2021-10-23 10:23:04 字數 1549 閱讀 3757

1006題目鏈結

第i條邊的邊權是2^i,由2 ^1+2 ^2+2 ^3+…+2 ^(i-1)<2 ^i,故可以跑最小生成樹,兩兩之間的距離便是最短路了。

計算方面,對於每條邊,計算有幾個0 1路徑經過該邊,邊權乘以這個個數就可以了。

**:

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

#define int128 _int128;

#define reg register;

typedef

long

long ll;

typedef

double db;

const

int mod=

1e9+7;

const

int maxn=

1e5+5;

const

double eps=

0.00000001

;struct edgee[maxn]

;vectorg[maxn]

;int a[maxn]

,pa[maxn]

,vis[maxn]

,s1,s2,c1[maxn]

,c0[maxn]

;ll ans=0;

int t,n,m;

intfind

(int x)

void

unite

(int x,

int y)

ll pow2[

2*maxn]

;void

dfs(

int x)}if

(a[x]==0

) c0[x]++;

else c1[x]++;

}void

dfs(

int x)}}

intmain()

while

(t--

)int u,v,p=0;

for(

register

int i=

1;i<=n;

++i)

int xx,yy;

for(

register

int i=

1;i<=m;

++i)

}int rt;

for(

register

int i=

1;i<=n;i++)}

memset

(vis,0,

sizeof

(vis));

ans=0;

dfs(rt)

;printf

("%lld\n"

,ans)

;for

(int i=

1;i<=n;i++

) g[i]

.clear()

;}}

2013多校第六場

hdu 4655 題意 給乙個序列,每個位置可以塗1 ai種顏色,連續不相同的顏色為一段,對於乙個排列,所有的塗色方法產生的段數為s,求最大的s 分析 對於乙個排序,所有的段數為n 相鄰兩個位置塗相同顏色的個數s 怎麼計算相鄰兩個位置塗相同顏色的個數s?p i 表示字首積,即p i a1 a2 ai...

2020牛客多校第六場 K

題意 判斷給的序列是不是 任意1 n的全排拼接成序列的連續子串行 每乙個數字應該屬於的地方它只能出現一次。從任意點i開始,如果某個點在往後查詢的時候出現了兩次,那麼i點最多能夠延伸到那個地方。然後我們可以把每個點求一下最多能延伸到哪個點,直接記錄len。操作看 處理 由於k很大,可以到1e9,但是n...

杭電多校第六場(IF)

題意 有命題 將 b 進製數y按位相加,迴圈無窮次,最終結果若 x 0,則有y x 0,反之不然 給出b和x,判斷命題是否成立 打表發現的b x 1時成立,看到有數論大佬推出來的 想看推導的右轉 includeusing namespace std typedef unsigned long lon...