10156. 「一本通 5.2 例 4」战略游戏

题意

有一座古城堡,里面的路形成一棵树, 某个士兵在一个节点上时,与该节点相连的所有边都将能被瞭望到。问最少需要多少士兵才可以使所有的路都被瞭望到。 输入数据表示一棵树,描述如下。 第一行一个数 $N$ ,表示树中节点的数目。 第二到第 $N+1$ 行,每行描述每个节点信息,依次为该节点编号 $i$,数值 $k$,$k$ 表示后面有 $k$ 条边与节点 $i$ 相连,接下来 $k$ 个数,分别是每条边的所连节点编号 $r_1,r_2,\cdots ,r_k$。 对于一个有 $N$ 个节点的树,节点标号在 $0$ 到 $N-1$ 之间,且在输入文件中每条边仅出现一次。

思路

设$f[x][0]$表示第$i$个节点不放士兵,以$x$节点为根节点的子树所需要士兵的最少数量。 设$f[x][1]$表示第$i$个节点放士兵,以$x$节点为根节点的子树所需要士兵的最少数量。 那么有: $$f[x][0]=\sum{f[y][1],y∈x的儿子}$$ $$f[x][1]=1+\sum{min(f[y][0],f[y][1]),y∈x的儿子}$$ 那么这个问题就愉快的解决了。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇