HDOJ 1770 閱讀理解 樹形DP

2021-09-09 00:19:17 字數 781 閱讀 3215

題意: 乙個能量e可以通過吸收某個光子的能量變成e1或者釋放某個光子的能量變成e2...並且任意兩個能量的轉化路徑至多一條...現在有一堆能量,有一堆光子...如果某個能量與某個光子做直接運算(加上其能量或者減去)會等於乙個已經存在的能量...那麼就會發生危險...問在這堆能量中..不發生危險並且能量和最大為多少...

由於兩個能量的轉化路徑至多一條..那麼可以用樹(森林)來表示所有的關係...有衝突的兩點做無向邊....我之前一直wa就是做成有向邊了...

dp[k][0]代表以k為根的子樹,不取k這個點..最多能獲得的能量...

dp[k][1]代表以k為根的子樹,取k這個點..最多能獲得的能量...

轉化成乙個很經典的問題了..

program:

#include#include#include#include#include#include#include#define ll long long

#define oo 1000000007

#define maxn 205

using namespace std;

vectortree[maxn];

int n,m,a[maxn],dp[maxn][2];

bool p[1000005],used[maxn],root[maxn];

void dfs(int x)

{ int i,num=tree[x].size();

used[x]=true;

dp[x][0]=0,dp[x][1]=a[x];

for (i=0;i

177 單詞替換

題目描述 你需要輸出替換之後的句子。示例 1 輸入 dict 詞典 cat bat rat sentence 句子 the cattle was rattled by the battery 輸出 the cat was rat by the bat 注 輸入只包含小寫字母。1 字典單詞數 1000...

careercup 中等難度 17 7

17.7 給定乙個整數,列印該整數的英文描述 例如 one thousand,two hundred thirty four 解法 舉個例子,在轉換19 323 984時,我們可以考慮分段處理,沒三位轉換一次,並在適當的地方插入 thousand 千 和 million 百萬 也即,convert ...

177 有限制的素數

輸入檔案 qprime.in 輸出檔案 qprime.out 簡單對比 時間限制 1 s 記憶體限制 128 mb farmer john 開始給奶牛們標記上素數的牌子,貝茜注意到了這一切,她對各種數的牌子很好奇。請幫助貝茜算出從a到b 1 a b 4,000,000 b a 1,000,000 b...