只能想到n^3的辦法 一看資料量自閉了。。 看了題解也是n^3 智障出題人
dp[i][j]代表以i為根的子樹選j個使用者時得到的最大收益 然後就是樹上揹包轉移一下 最後看根節點上最多選幾個人不虧本
#include #include #include using namespace std;
const int n=0x3f3f3f3f;
const int maxn=3e3+10;
struct node
;node edge[maxn];
int dp[maxn][maxn];
int first[maxn],pre[maxn],val[maxn],sum[maxn],tmp[maxn];
int n,m,num;
void addedge(int u,int v)
void dfsi(int cur)
}void dfsii(int cur)
}for(k=0;k<=sum[cur];k++) dp[cur][k]=tmp[k];
}}int main()
}for(i=n-m+1;i<=n;i++)
for(i=1;i<=n;i++)
}dfsi(1);
dfsii(1);
ans=0;
for(i=1;i<=m;i++)
printf("%d\n",ans);
return 0;
}
有線電視網 洛谷p1273
某收費有線電視網計畫轉播一場重要的足球比賽。他們的轉播網和使用者終端構成一棵樹狀結構,這棵樹的根結點位於足球比賽的現場,樹葉為各個使用者終端,其他中轉站為該樹的內部節點。從轉播站到轉播站以及從轉播站到所有使用者終端的訊號傳輸費用都是已知的,一場轉播的總費用等於傳輸訊號的費用總和。現在每個使用者都準備...
有線電視網 洛谷P1273
題目描述 某收費有線電視網計畫轉播一場重要的足球比賽。他們的轉播網和使用者終端構成一棵樹狀結構,這棵樹的根結點位於足球比賽的現場,樹葉為各個使用者終端,其他中轉站為該樹的內部節點。從轉播站到轉播站以及從轉播站到所有使用者終端的訊號傳輸費用都是已知的,一場轉播的總費用等於傳輸訊號的費用總和。現在每個使...
P1273 有線電視網(洛谷)
這道題我一開始也是不會,後來看了題解,是分組揹包dp問題,然後明白了,下面就說一說思路 題意自己看吧 用d i,j,k 表示以j作為根節點的子樹,在前i個子節點中選擇k個節點所得到的最大收益,顯然這樣的定義是將問題轉化了,滿足d i,j,k 0最後就能夠考慮 j 1,也就是說是最初的大根 然而其他情...