f[i][2];以i為根的子樹,i節點不放置士兵滿足條件的最小放置士兵數量。
樹形dp一下就行
比較奇怪的是:讀入scanf("%d:(%d)",&u,&m);是對的
scanf("%d%s",&u,s);
int m=s[2]-'0';
這樣就會超時。。。
有懂得大佬解答下嗎。。。
#include using namespace std;
typedef long long ll;
//typedef __int128 ll;
//typedef unsigned long long ull;
//#define f first
//#define s second
typedef long double ld;
typedef pairpii;
typedef pairpll;
typedef pairpdd;
const ld pi=acos(-1);
const ld eps=1e-9;
//unordered_mapmp;
#define ls (o<<1)
#define rs (o<<1|1)
#define pb push_back
//#define a(i,j) a[(i)*(m+2)+(j)] //m是矩陣的列數
//pop_back()
const int seed=131;
const int m = 1e4+7;
int head[m],cnt;
void init()
struct edgeee[m*2];
void add(int x,int y)
int f[m][2];
void dfs(int u,int fa)
}int main()
dfs(0,-1);
printf("%d\n",min(f[0][0],f[0][1]));
} return 0;
}
AcWing 323 戰略遊戲
題目傳送門 這是基礎課原題 acwing 285.沒有上司的舞會 include using namespace std const int n 1510 因為題目明確是有向圖,無需m n 2 int h n e n ne n idx 鄰接表 int f n 2 集合 以結點i為 根節點 的子樹,在...
TYVJ3097 3121 3369 戰略遊戲
給一棵n個節點的樹,在點上放置士兵,每個士兵能監視周圍的所有邊,詢問最少放置的士兵數dp i,0 表示在 i點不放 士兵合法 的最小放 置數dp i,1 表示在 i點放士 兵合法的 最小放置 數 dp i,0 d p so n i 1 dp i 1 dp son i 1 d p so n i 0 m...
P2016 戰略遊戲
樹形dp f u 0 表示 uf u 0 表示u f u 0 表示u 號節點不放士兵,以x為根的子樹需要的最少士兵數。f u 1 表示 uf u 1 表示u f u 1 表示u 號節點放士兵,以x為根的子樹需要的最少士兵數。由於我們定義的是將其完全覆蓋,則我們不需要考慮父親節點,為什麼?當我們已經回...