ZROI 2018 0821 暑假普轉提模擬賽

2021-08-25 11:06:40 字數 2530 閱讀 9799

60ptsn⩽

10 60

ptsn⩽10

全排列並分別計算時間(話說暴力分是真的良心)。

100ptsn⩽

1000

100ptsn⩽

1000

因為期望具有可加性,於是我們可以考慮第

i i

個人在第

j' role="presentation">j

j個位置對答案的貢獻,累加即可。

時間複雜度:θ(

n2) θ(n

2)

**

#include 

const

int n=1005;

int n;

double u,v,c[n],d[n];

int main()

20ptsn⩽

300 20

ptsn

⩽300

每次加邊後,列舉每一條邊是否為割邊(用並查集計算連通塊個數)。

50ptsn⩽

3000

50ptsn⩽

3000

每次加邊後,用

tarjan

tarjan

求割邊數量。

100ptsn⩽

5×105

100ptsn⩽

5×105

對於所有不會構成環的邊建樹,其維護深度和父節點。對於會構成環的邊,暴力向上爬,把環中的所有點用並查集縮點。最後,樹上沒有被縮起來的點即為橋。

時間複雜度:θ(

n⋅α(

n)) θ(n

⋅α(n

))

**

#include 

#include

const

int n=500005;

struct edge e[n<<1];

int n,m,p,tot,hd[n],ff[n],fa[n],dep[n],u[n],v[n];

bool mark[n],vis[n];

int find(int x)

void add(int u,int v)

void dfs(int u)

}void jump(int &x)

int main()

}for(int i=1;i<=n;++i) if(!vis[i]) dfs(i);

long

long sum=0,ans=1ll;

for(int i=1;i<=m;++i)

printf("%lld\n",ans);

return

0;}

20ptsn⩽

5,m⩽

20 20

ptsn⩽5

,m⩽20

暴力?(我連暴力都不會寫了 qaq) 40

ptsn,m

⩽300

40ptsn,

m⩽

300直接在樹上進行揹包,每次轉移都是 θ(

m2) θ(m

2)

。100ptsn⩽

4000

100ptsn⩽

4000

考慮在樹上的

dfs dfs

序上進行

01 01

揹包 dp dp

,各種細節在**中都有實現和寫明(狀態和轉移等都與一般的揹包問題類似)。

時間複雜度:θ(

nmlogm

) θ(n

mlog⁡m

)(樹上多重揹包二進位制優化)

**

#include 

#include

#include

using

namespace

std;

const

int n=4005;

int n,m,tot,cnt,w[n],s[n],c[n],hd[n],en[n],b[n],f[n][n];

struct edge e[n];

void add(int u,int v)

void dfs(int x)

void solve()

for(int k=1;k<=ss;ss-=k,k<<=1)

for(int j=m;j>=k*cc;--j) f[i][j]=max(f[i][j],f[i][j-k*cc]+k*ww);

if(ss) for(int j=m;j>=ss*cc;--j) f[i][j]=max(f[i][j],f[i][j-ss*cc]+ss*ww);

for(int j=0;j<=m;++j) f[i+1][j]=max(f[i+1][j],f[i][j]);

}}int main()

return

0;}

ZR 539 19普轉提 4 和 題解

給定乙個數字 n 請問有哪些區間 l,r 使得 sum r i n 請按 l 從小到大的順序輸出所有區間。根據題意我們可以列出方程 frac n 也就是 l r r l 1 n times 2 於是我們可以列舉 n 的因數 x 令 y frac n x 判斷是否有兩數和為 y 差為 x 即可。這裡假...

題解 總結 普轉提七聯測 Day2

小強作為oi圈爸爸級別的人物,有一天隨手ak的zroi的j轉s模擬賽。ak完了的小強閒得無聊,於是隨手在紙上面寫了幾個看上去非常有規律的數字,555655,24444,7787,110。他覺得這些數字非常的有趣,並開心地拍起了手。於是小強定義乙個有趣的數為 對於乙個正整數,對於其所有的數字,當且僅當...

正睿2020普轉提 第六套 塔

題目 睿爸喜歡搭塔塔。睿爸有n 1n 1 n1 個高度h 1h 1 h1 的紅色磚塊,和n 2n 2 n2 個高度為h 2h 2 h2 的藍色磚塊,這些的磚塊的底面和頂面的長寬均相同,且你不能將這些磚塊立體旋轉或者轉動。睿爸可以按照如下方式搭塔 1.每個磚塊要麼可以放在地面上,要麼必須壘在乙個顏色不...