sample input
43 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
101060
題意:
已知有兩個門,要求將人分為兩組,兩組的「和」分別等於兩個門的數字,當然也可以全部進入乙個門
思路:(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 點嫉妒值...