191005CSP模擬題解

2021-09-27 18:50:14 字數 2605 閱讀 2565

t1:對於每條邊,求刪了這條邊原圖能否成為二分圖,點邊規模2e6

解法:首先判掉無奇環和乙個奇環的情況

一條邊合法當且僅當其屬於所有奇環的交集且不屬於任何乙個偶環(會構成新的奇環)

那就弄個dfs樹,對於每條返祖邊樹上差分一下,奇環+1偶環-1,最後看差分值是否為奇環個數即可

code:

#include

using

namespace std;

inline

intread()

while

(isdigit

(ch)

)return res*f;

}const

int n=

2e6+5;

int vis[n<<1]

,head[n<<1]

,nxt[n<<1]

,tot=1;

inline

void

add(

int x,

int y)

int dep[n]

,pt[n]

,f[n]

,cnt,tmp;

void

dfs(

int v,

int fa)}}

int ans[n]

,cntans=0;

inline

void

dfs2

(int v,

int fa)

intmain()

for(

int i=

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

(!pt[i]

) dep[i]=1

,dfs

(i,0);

if(!cnt)

memset

(pt,0,

sizeof

(pt));

for(

int i=

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

(!pt[i]

)dfs2

(i,0);

if(cnt==

1) ans[

++cntans]

=tmp;

sort

(ans+

1,ans+cntans+1)

; cout<"\n"

;for

(int i=

1;i<=cntans;i++

) cout<<<

" ";

return0;

}

t2:乙個字串和乙個陣列,陣列某一位的值表示乙個字串的字尾,支援在前端插入乙個字元,單點修改陣列內某個位置的值,查詢陣列某個區間內的所有字尾中字典序最小的

解法:顯然字尾平衡樹,順便%一發zxyoi考場現推字尾平衡樹模板ac

其實可以把串倒過來,然後線段樹維護陣列每個位置,區間求min,min的比較用二分雜湊即可,nlo

g2

nnlog^2n

nlog2n

但可能會被卡常

#include

using

namespace std;

inline

intread()

while

(isdigit

(ch)

)return res*f;

}const

int n=

2e6+5;

int vis[n<<1]

,head[n<<1]

,nxt[n<<1]

,tot=1;

inline

void

add(

int x,

int y)

int dep[n]

,pt[n]

,f[n]

,cnt,tmp;

void

dfs(

int v,

int fa)}}

int ans[n]

,cntans=0;

inline

void

dfs2

(int v,

int fa)

intmain()

for(

int i=

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

(!pt[i]

) dep[i]=1

,dfs

(i,0);

if(!cnt)

memset

(pt,0,

sizeof

(pt));

for(

int i=

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

(!pt[i]

)dfs2

(i,0);

if(cnt==

1) ans[

++cntans]

=tmp;

sort

(ans+

1,ans+cntans+1)

; cout<"\n"

;for

(int i=

1;i<=cntans;i++

) cout<<<

" ";

return0;

}

t3:雅禮wc2019集訓traffic

記錄CSP題解

化學方程式 string fomular unordered mapint mymap struct element void processword string word,int type if flag num 1 while lo hi elseif isupper word lo lo e...

csp模擬補題

咕咕東是個貪玩的孩子,有一天,他從上古遺跡中得到了乙個神奇的圓環。這個圓環由字母表組成首尾相接的環,環上有乙個指標,最初指向字母a。咕咕東每次可以順時針或者逆時針旋轉一格。例如,a順時針旋轉到z,逆時針旋轉到b。咕咕東手裡有乙個字串,但是他太笨了,所以他來請求你的幫助,問最少需要轉多少次。解題過程 ...

csp模擬 模擬測試16

fdasds include using namespace std define cle a memset a,0,sizeof a inline int read const int mod 1e9 7,maxn 1e3 100 int n,m,ans 0 int f maxn maxn int...