2015 多校聯賽 HDU5389(dp)

2021-07-04 14:05:32 字數 1006 閱讀 2094

sample input

4

3 9 1

1 2 6

3 9 1

2 3 3

5 2 3

1 1 1 1 1

9 9 9

1 2 3 4 5 6 7 8 9

sample output

1010

60

題意:

已知有兩個門,要求將人分為兩組,兩組的「和」分別等於兩個門的數字,當然也可以全部進入乙個門

思路:(nevermoreh)

如果能找到滿足題意的解,一定滿足a和b的和等於n個人的標號的和,所以我們只需要判斷n個人的標號組成a的情況有多少(或者只判斷b,一樣),同時還要注意可以把n個人都分給a,或者都分給b,這樣也是滿足的。(果然還是缺乏經驗- -,想不到方法)

#include#include#include#includeusing namespace std;

#define n 500010

#define mod 258280327

int q[100050];

int dp[100005][10];

int sum(int x,int y)

int main()

memset(dp,0,sizeof(dp));

dp[0][0] = 1;

for(int i = 1; i <= n; i++)

for(int j = 0; j <= 9; j++)

int ans = 0;

ans = (ans+dp[n][a]) * (sum(a,b) == sum);

if(sum == a && ans == 0)

ans++;

if(sum == b)

ans++;

printf("%d\n",ans);

}return 0;

}

HDU 2822 多校聯賽1

這個題的意思是給你乙個方格,x代表房子,代表空,在連通的x之間行走不需要花費,給你起點座標和終點座標,問從起點到終點的最少花費?對於這個我們可以使用雙bfs來解決這個問題,即遇到了x就用bfs2來填充,邊界又放入bfs1中更新,如下 include include include include u...

多校聯賽總結

首先是一些資料 2014 multi university training contest 1 by fzu a 數學 費馬小定理 b 網路流 最小k路徑覆蓋 c 樹形dp 樹的重心 資料結構 d 貪心 巧妙 e 數學 dp 隱含馬爾科夫模型 f 線段樹 函式式 二分 g 線段樹 狀態壓縮 h 模...

多校聯賽 Envy

我們讓 n 個人站成一排,編號為 1 n,每個人都有乙個數字代表他這次比賽的成績,對於每個人,如果他後面 編號大於他的人中 存在乙個人的成績大於等於他,那麼他的嫉妒值為他們之間的距離。兩個點 a和 b 之間的距離為 abs a b 例如 4,3,6,2 那麼第 1 個人對第 3 個人有 2 點嫉妒值...