P4578 FJOI2018 所羅門王的寶藏

2022-05-19 11:43:17 字數 1029 閱讀 6634

傳送門

考慮乙個位置答案傳遞性,如果某個位置的紅寶石轉動確定了,那麼會引起連鎖反應:

如圖,綠色的轉動確定了,那麼那兩個藍色的轉動也確定了

自己手玩一下,發現如果有解那麼隨便找乙個開始然後一路玩下去最後一定會有解,如果一旦有衝突那麼之後不管怎麼調整也都一定無解,(因為調整最後又會繞回自己繼續衝突)

然後就直接bfs搜就好了

#include#include

#include

#include

#include

#include

using

namespace

std;

inline

intread()

while(ch>='

0'&&ch<='

9')

return x*f;

}const

int n=20007

;int fir[n],from

[n],to[n],val[n],cntt;

inline

void add(int a,int b,int

c)int

t,n,m,k;

intdel[n];

bool

vis[n],gg;

void bfs(int

st)

continue

; }

del[v]=w-del[x]; vis[v]=1

; q.push(v);}}

}int

main()

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

if(gg) printf("

no\n");

else printf("

yes\n");

}return0;

}

P4577 FJOI2018 領導集團問題

p4577 fjoi2018 領導集團問題 我們對整棵樹進行dfs遍歷,並用乙個multiset維護對於每個點,它的子樹可取的最大點集。我們遍歷到點 u 時 不選點 u 顯然答案就為它的所有子樹的子集大小之和 所以答案是單調不減的 選點 u 時,我們lower bound乙個比 val u 小且最接...

FJOI2018 領導集團問題

fjoi2018 領導集團問題 dp i j i為根子樹,最上面的值是j,選擇的最大值 觀察dp方程 1.整體dp已經可以做了。2.考慮優美一些的做法 dp i 如果對j取字尾最大值,顯然是不上公升的分段函式 而段數就是子樹sz 樹形dp的時候,子樹之間可以直接把分段函式按位相加。對於 w x 的,...

FJOI2018 領導集團問題

首先本題貪心不是很好做,可以考慮 dp 然後我們有了乙個很直接的想法,令 dp 表示以 i 號點為根當前選擇的節點中權值最小的權值為 j 的最大成員數,可以發現這樣做是 o n 3 的。可以發現這個 dp 有很多轉移是相同的,那麼我們這樣做是非常浪費的,為了能夠快速轉移,我們可以改變一下狀態,令 d...