Những câu hỏi liên quan
nguyễn an phát
Xem chi tiết
Anh Phạm
28 tháng 7 2021 lúc 21:35

Bạn sài Quy hoạch động đi

c++:

#include <iostream>
#include <vector>

using namespace std;

const int N = (int) 1e5 + 5;
const int MOD = (int) 1e9;

int a[N];
int n;

int main() {
    cin >> n;
    if (n == 0) {
        cout << 0 << endl;
        return 0;
    }

    vector<int> p;
    for (int i = 1;;) {
        p.push_back(i * (3 * i - 1) / 2);
        if (p.back() >= n) break;
        i = -i;
        if (i > 0) i++;
    }

    a[0] = 1;
    for (int i = 1; i <= n; ++i) {
        int sign = 1, cnt = 0;
        for (int j : p) {
            if (j > i) break;
            a[i] += sign * a[i - j];
            if (a[i] < 0) a[i] += MOD;
            if (a[i] >= MOD) a[i] -= MOD;
            cnt += 1;
            if (cnt == 2) {
                cnt = 0;
                sign = -sign;
            }
        }
    }

    cout << a[n] << endl;
    return 0;
}

 

 

Bình luận (0)
Võ Thanh Hậu
Xem chi tiết
Khúc Mạnh Trí
Xem chi tiết
Nguyễn Thị MinhThư_
Xem chi tiết
Ngô Minh Thái
Xem chi tiết
Nakamori Aoko
3 tháng 3 2016 lúc 20:13

Cau 6: 50 phan so 

Cau 8:20;50

Cau 9:1;2

Bình luận (0)
Lê Ngọc Tuyền
3 tháng 3 2016 lúc 16:43

mình điên đầu rồi

Bình luận (0)
Đao Quoc Huy
3 tháng 3 2016 lúc 21:24

cau 10 : 12 so tat ca

Bình luận (0)
Trần Hoàng Minh
Xem chi tiết
trần Văn An
Xem chi tiết
Vương Thị Nguyệt Ánh
Xem chi tiết
Nguyễn Minh Trứ
Xem chi tiết