求调qwq
查看原帖
求调qwq
1270926
wawatime1楼主2025/6/17 20:41

数据可真精妙啊

1000000
8 9 2
2528 5049
#include <bits/stdc++.h>
using namespace std;
const int mod = 2520;
int l, s, t, m, ans = 0x3f3f3f3f;
int a[105], f[1000005];
int dp[1000005];
int main () {
    scanf ("%d%d%d%d", &l, &s, &t, &m);
    for (int i = 1; i <= m; i++){
        scanf ("%d", &a[i]);
    }
    sort (a + 1, a + 1 + m);
    for (int i = 1; i <= m; i++){
        if (a[i] - a[i - 1] >= mod)
            a[i] = a[i - 1] + (a[i] - a[i - 1]) % mod;
    }
    for (int i = 1; i <= m; i++){
        f[a[i]] = 1;
    }
    int r = a[m] + t + 1;
    memset (dp, 0x3f, sizeof (dp));
    dp[0] = 0;
    for (int i = 1; i <= r; i++){
        for (int j = i - t; j <= i - s; j++){ 
            if (j < 0){
                continue;
            }
            if (j == 0){
                dp[i] = dp[j];
            }
            else{
                dp[i] = min (dp[i], dp[j]);
            }
        }
        dp[i] += f[i];
    }
    for (int i = a[m]; i <= r; i++){
        ans = min (ans, dp[i]);
    }
    printf ("%d", ans);
    return 0;
}
2025/6/17 20:41
加载中...