SSブログ

PKU 2229: Sumsets [PKU]

よい子の味方!動的計画法!
ナップサック問題ですよー!

long long型や剰余は計算時間が長いので、使わないほうが良いらしいです.お気をつけて!
#include <stdio.h>
#include <string.h>

int main(void)
{
    int i, j;
    int num;
    static int ans[1000001];
    
    scanf("%d", &num);
    
    ans[0] = 1;
    
    for (i = 1; i <= num; i *= 2){
        for (j = 0; j + i <= num; j++){
            ans[j + i] += ans[j];
            if (ans[j + i] >= 1000000000){
                ans[j + i] -= 1000000000;
            }
        }
    }
    
    printf("%d\n", ans[num]);
    
    return (0);
}

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

AOJ 0181: Persistenc..AOJ 0529: Darts ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。