编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#116926 #1471. [L2-1] 称名目题 Accepted 100 188 ms 8228 K C++ / 1.6 K 青春猪头蒟蒻会梦到 0d000721吗 2025-04-17 1:03:48
显示原始代码
#include <bits/stdc++.h>
#define MOD 19491001
using namespace std;
int n, d, k, ans = 0;
int dp0[1010][1010] = { 0 }, dp1[1010][1010] = { 0 };
int main() {
    cin >> n >> k >> d;
    for (int i = 0; i <= n; i++) dp0[0][i] = 1;
    for (int l = 1; l <= n; l++) {
        for (int i = 1; i <= n; i++) {
            if (i < d) {
                dp0[l][i] = (dp0[l][i - 1] + dp0[l - 1][i - 1]) % MOD;
            } else if (i > d) {
                int mi = min(i, k);
                if (mi != i)
                    dp0[l][i] = (dp0[l][i - 1] + dp0[l - 1][i - d - 1] + dp0[l - 1][i - 1] -
                                 dp0[l - 1][i - d] - dp0[l - 1][i - mi - 1] + MOD) %
                                MOD;
                else
                    dp0[l][i] = (dp0[l][i - 1] + dp0[l - 1][i - d - 1] + dp0[l - 1][i - 1] -
                                 dp0[l - 1][i - d] + MOD) %
                                MOD;
            } else {
                dp0[l][i] = (dp0[l][i - 1] + dp0[l - 1][i - 1] - dp0[l - 1][i - d] + MOD) % MOD;
            }
            if (min(i, k) != i)
                dp1[l][i] = (dp1[l][i - 1] + dp1[l - 1][i - 1] - dp1[l - 1][i - min(i, k) - 1]) % MOD;
            else
                dp1[l][i] = (dp1[l][i - 1] + dp1[l - 1][i - 1]) % MOD;
            if (i > d)
                dp1[l][i] = ((dp0[l - 1][i - d] - dp0[l - 1][i - d - 1]) + dp1[l][i]) % MOD;
            else if (i == d)
                dp1[l][i] = ((dp0[l - 1][i - d]) + dp1[l][i]) % MOD;
            // cout<<i<<' '<<dp0[l][i]<<' '<<dp1[l][i]<<endl;
        }
        ans += (dp1[l][n - 1] - dp1[l][n - 2] + MOD) % MOD;
        ans %= MOD;
        // for(int i=0;i<=n-1;i++){
        //     cout<<dp0[0]<<' ';
        // }
        // cout<<endl;
        // for(int i=0;i<=n-1;i++){
        //     cout<<dp1[0]<<' ';
        // }
        // cout<<endl;
        // cout <<l<<' '<< ans<<endl;
    }
    cout << ans;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:2 ms
内存:388 KiB

输入文件(A1.in

4 3 2

答案文件(A1.out

2

用户输出

2

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:3 ms
内存:384 KiB

输入文件(A2.in

10 10 2

答案文件(A2.out

191

用户输出

191

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:3 ms
内存:368 KiB

输入文件(A3.in

10 1 1

答案文件(A3.out

1

用户输出

1

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:2 ms
内存:372 KiB

输入文件(A4.in

3 10 1

答案文件(A4.out

1

用户输出

1

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:2 ms
内存:388 KiB

输入文件(A5.in

15 15 8

答案文件(A5.out

144

用户输出

144

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:3 ms
内存:512 KiB

输入文件(A6.in

24 14 9

答案文件(A6.out

69464

用户输出

69464

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:2 ms
内存:412 KiB

输入文件(A7.in

8 21 1

答案文件(A7.out

56

用户输出

56

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:3 ms
内存:1136 KiB

输入文件(A8.in

100 100 50

答案文件(A8.out

708811

用户输出

708811

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:2 ms
内存:1024 KiB

输入文件(A9.in

100 200 1

答案文件(A9.out

5651739

用户输出

5651739

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:3 ms
内存:1948 KiB

输入文件(A10.in

200 100 1

答案文件(A10.out

5274278

用户输出

5274278

系统信息

Exited with return code 0
测试点 #11
Accepted
得分:100
用时:14 ms
内存:8152 KiB

输入文件(A11.in

1000 100 100

答案文件(A11.out

17821130

用户输出

17821130

系统信息

Exited with return code 0
测试点 #12
Accepted
得分:100
用时:5 ms
内存:2820 KiB

输入文件(A12.in

321 123 2

答案文件(A12.out

12579988

用户输出

12579988

系统信息

Exited with return code 0
测试点 #13
Accepted
得分:100
用时:2 ms
内存:1024 KiB

输入文件(A13.in

100 2 1

答案文件(A13.out

4899378

用户输出

4899378

系统信息

Exited with return code 0
测试点 #14
Accepted
得分:100
用时:14 ms
内存:8192 KiB

输入文件(A14.in

1000 6 3

答案文件(A14.out

17160282

用户输出

17160282

系统信息

Exited with return code 0
测试点 #15
Accepted
得分:100
用时:10 ms
内存:7272 KiB

输入文件(A15.in

888 777 666 

答案文件(A15.out

453976

用户输出

453976

系统信息

Exited with return code 0
测试点 #16
Accepted
得分:100
用时:12 ms
内存:8052 KiB

输入文件(A16.in

987 654 321

答案文件(A16.out

2582628

用户输出

2582628

系统信息

Exited with return code 0
测试点 #17
Accepted
得分:100
用时:10 ms
内存:6528 KiB

输入文件(A17.in

789 456 123

答案文件(A17.out

5599752

用户输出

5599752

系统信息

Exited with return code 0
测试点 #18
Accepted
得分:100
用时:13 ms
内存:7332 KiB

输入文件(A18.in

888 555 1

答案文件(A18.out

15391964

用户输出

15391964

系统信息

Exited with return code 0
测试点 #19
Accepted
得分:100
用时:15 ms
内存:8228 KiB

输入文件(A19.in

1000 1000 10

答案文件(A19.out

5155410

用户输出

5155410

系统信息

Exited with return code 0
测试点 #20
Accepted
得分:100
用时:14 ms
内存:8188 KiB

输入文件(A20.in

1000 1000 100

答案文件(A20.out

10878133

用户输出

10878133

系统信息

Exited with return code 0
测试点 #21
Accepted
得分:100
用时:11 ms
内存:8192 KiB

输入文件(A21.in

1000 1000 999

答案文件(A21.out

1

用户输出

1

系统信息

Exited with return code 0
测试点 #22
Accepted
得分:100
用时:11 ms
内存:8192 KiB

输入文件(A22.in

999 998 997

答案文件(A22.out

2

用户输出

2

系统信息

Exited with return code 0
测试点 #23
Accepted
得分:100
用时:15 ms
内存:8192 KiB

输入文件(A23.in

999 99 9

答案文件(A23.out

8500591

用户输出

8500591

系统信息

Exited with return code 0
测试点 #24
Accepted
得分:100
用时:13 ms
内存:7896 KiB

输入文件(A24.in

963 258 147

答案文件(A24.out

3441362

用户输出

3441362

系统信息

Exited with return code 0
测试点 #25
Accepted
得分:100
用时:4 ms
内存:1920 KiB

输入文件(A25.in

201 502 10

答案文件(A25.out

14440881

用户输出

14440881

系统信息

Exited with return code 0