藍書 323 戰略遊戲

2021-10-01 06:04:00 字數 1052 閱讀 8122

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為根的子樹需要的最少士兵數。由於我們定義的是將其完全覆蓋,則我們不需要考慮父親節點,為什麼?當我們已經回...