HLG 1477 戰爭與守衛 樹形DP

2022-05-28 13:06:11 字數 749 閱讀 7307

題意:j國和

c國爆發了戰爭,

j國派出了很多間諜深入到

c國內部,經常在

c國的城市之間炸毀道路,阻攔

c國的軍隊,

c國為了抓到這些間諜,需要派人在城市進行監視,乙個城市只要有乙個人監視,那麼這個城市的所有的道路也都會被監視到,為了能夠盡量多的士兵去前線打仗,監視的士兵要盡可能的少,希望靠你程式設計求出至少需要多少人能實現對所有城市之間道路的監視。

分析://

dp[i][0]  在 i 節點不放士兵

//dp[i][1]  在 i 節點放士兵

//dp[i][0]+=dp[j][1]

//dp[i][1]+=min(dp[j][0],dp[j][1])

#include#include

#define min(a,b)(a)<(b)?(a):(b)

int v[1550

];struct

node

q[15001

];int head[1501],dp[1501][2

],tot;

void add(int s,int

u)int dfs(int

i)

return min(dp[i][0],dp[i][1

]);}

intmain()

}printf(

"%d\n

",dfs(root));

}return0;

}

Jzoj P3896 戰爭遊戲

n nn個點,m mm條無向邊,保證任意兩點間都連通。問對於這n nn個點而言,分別作為任意兩點間所有路徑的必經點的次數有多少次。必經點,假如a ba b a b的所有路徑都存在經過點c cc,則稱c cc為必經點 n 5 104 m 1 05 n 5 10 4,m 10 5 n 5 10 4,m ...

JLOI2015 戰爭排程

記憶體限制 256 mib 時間限制 1000 ms 標準輸入輸出 題目型別 傳統 評測方式 文字比較 臉哥最近來到了乙個神奇的王國,王國裡的公民每個公民有兩個下屬或者沒有下屬,這種關係剛好組成乙個 n 層的完全二叉樹。公民 i 的下屬是 2i 和 2i 1 最下層的公民即葉子節點的公民是平民,平民...

JLOI2015 戰爭排程 war

一開始看這題,毫無頭緒 不過發現n十分的小,最多只有10,想一想暴搜加優化。先試著打了打暴搜,從上往下列舉狀態,然後搜尋到子節點的時候,再統計答案,每個父節點的答案是兩個子節點答案的和,dfs x,y,z 表示當前搜到的點二進位制狀態為x,從根節點到底層打仗的狀態為y,然後此時要打仗的人有z個。然後...