P3942 將軍令 貪心

2021-09-20 03:48:46 字數 1406 閱讀 2887

鏈結

不斷從深度最大的節點的k

kk級父節點進行擴充套件

注意擴充套件時使用 dfs

dfsdf

s, 因為 bfs

bfsbf

s 儲存上乙個經過的節點較麻煩

**中有bfs

bfsbf

s 函式, 僅供參考, 由於回環往復地入隊, tle

tletl

e 不可避免,

#include

#define reg register

intread()

while

(isdigit

(c)) s = s*

10+ c-

'0', c =

getchar()

;return s * flag;

}const

int maxn =

100005

;int n;

int k;

int num0;

int ans;

int head[maxn]

;int fa[maxn]

;int f[maxn]

, used[maxn]

;std::queue <

int> q;

struct edge edge[maxn <<1]

;void

add(

int from,

int to)

; head[from]

= num0;

}void

bfs(

int k)}}

struct node t[maxn]

;void

dfs(

int k,

int fa)

}void

dfs_2

(int k,

int left,

int last)

}bool

cmp(node a, node b)

intmain()

for(reg int i =

1; i < n; i ++

)dfs(1

,0);

std::

sort

(t+1

, t+n+

1, cmp)

;for

(reg int i = n; i >=

1; i --)}

printf

("%d\n"

, ans)

;return0;

}

P3942 將軍令 貪心

鏈結 不斷從深度最大的節點的k k級父節點進行擴充套件 注意擴充套件時使用 dfs dfs,因為 bfs bfs 儲存上乙個經過的節點較麻煩 中有bfs bfs 函式,僅供參考,由於回環往復地入隊,tle tle 不可避免,include define reg register intread wh...

洛谷 P3942 將軍令 解題報告

又想起了四月。如果不是省選,大家大概不會這麼輕易地分道揚鑣吧?只見乙個又乙個昔日的隊友離開了機房。憑君莫話封侯事,一將功成萬骨枯。夢裡,小 f 成了乙個給將軍送密信的信使。現在,有兩封關乎國家生死的密信需要送到前線大將軍帳下,路途凶險,時間緊迫。小 f 不因為自己的禍福而避趨之,勇敢地承擔了這個任務...

貪心 洛谷3942將軍令

貪心 好 如果某個點沒被控制,我們當然選擇在他的第k的祖先 建站,這也就是貪心的思路。這個 某個點 我們肯定要從深度最大的點開始。所以說,先bfs一遍,bfs完的佇列就是按深度從小到大排序的了,我們從最後開始往前面迴圈,對於沒有被控制的點,ans,找出他的第k個祖先,然後dfs他的第k個祖先,向所有...