2327. 知道秘密的人数

2327. 知道秘密的人数

dp

const int MOD = 1e9+7;
class Solution {
public:
    int peopleAwareOfSecret(int n, int delay, int forget) {
        /*
            A: 可以分享的人
            B: 冻结的人
            C: 忘记的人
        */
        int f[n+10];
        memset(f, 0, sizeof f);
        f[1] = 1;
        int cntb = 0;
        for(int i = 1; i <= n; i++) {
            // f[i+delay] ~ f[i+forget];
            if(i+delay>n)cntb = (cntb + f[i]) % MOD;
            for(int j=i+delay; j < i+forget && j <= n; j++) {
                f[j] = (f[j] + f[i]) % MOD;
            }
        }

        return (f[n] + cntb) % MOD;
    }
};

你可能感兴趣的:(2327. 知道秘密的人数)