此时不搏何时搏。|

bryce_yyds

园龄:2年6个月粉丝:7关注:12

2024-10-15 21:37阅读: 6评论: 0推荐: 0

20241014总结

true

40pts

dpi,j,k 表示第 i 个左端点为 j,右端点为 k 的方案数,转移很好想,暴力枚举合法的 l,r 转移,由于空间开不下,选择用滚动数组优化一维,时间复杂度 O(nm4)

70pts

考虑在什么条件下才能够转移,很明显转移的 lkrmax(l,j),由于在 r<l 时的 dp0,所以 dpi,j,k=1lk,jrmdpi1,lr,这一坨可以用前缀和优化,时间复杂度 O(nm2)

100pts

发现这样枚举左右端点是无法继续优化下去了,于是考虑将左右端点拆开进行动态规划,设 fi,j 为第 i 个右端点为 j 的方案数,gi,j 为第 i 个左端点为 j 的方案数。

思考转移方程,需要用到容斥,fi,j=j×k=1jg(i1,k)r=1jk=1r1f(i1,k),意思为所有左端点在 j 左侧的区间的方案数减去这些满足上一条件的右端点小于当前区间左端点的区间的方案数,gi,j 同理。集中注意力,发现所有的求和都可以用前缀和优化,顺便还可以直接去掉第一维,减少空间,于是时间复杂度为 O(nm)

#include<iostream>
#define int long long

using namespace std;

inline int read(){
    register int x = 0, f = 1;
    register char c = getchar();
    while (c < '0' || c > '9'){
        if (c == '-') f = -1;
        c = getchar();
    }
    while (c >= '0' && c <= '9'){
        x = (x << 1) + (x << 3) + (c ^ 48);
        c = getchar();
    }
    return x * f;
}

const int N = 5e3 + 10, mod = 998244353;
int n, m, ans;
int f[N], g[N], sf[N], sumf[N], sg[N], sumg[N];

signed main(){
    freopen("true.in", "r", stdin);
    freopen("true.out", "w", stdout);
    n = read(), m = read();
    for (int i = 1; i <= m; i++) f[i] = i, g[i] = m - i + 1;
    for (int i = 2; i <= n; i++){
        for (int j = 1; j <= m; j++) sf[j] = (sf[j - 1] + f[j]) % mod, sumf[j] = (sumf[j - 1] + sf[j]) % mod;
        for (int j = 1; j <= m; j++) sg[j] = (sg[j - 1] + g[j]) % mod;
        for (int j = m; j >= 1; j--) sumg[j] = (sumg[j + 1] + (sg[m] - sg[j - 1] + mod) % mod) % mod;
        for (int j = 1; j <= m; j++) f[j] = (j * sg[j] % mod - sumf[j - 1] + mod) % mod;
        for (int j = 1; j <= m; j++) g[j] = ((m - j + 1) * ((sf[m] - sf[j - 1] + mod) % mod) % mod - sumg[j + 1] + mod) % mod;
    }
    for (int i = 1; i <= m; i++) ans = (ans + f[i]) % mod;
    cout << ans;
    return 0;
}

light

只会暴力。

magician

枚举 x,那么 x2 就确定了,所以 x21=yz,即 (x+1)(x1)=yz,处理出 x+1x1 的质因数,然后组合数学计算即可。

hand

不会。

本文作者:bryce蒟蒻的小窝

本文链接:https://www.cnblogs.com/bryceyyds/p/18468438

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   bryce_yyds  阅读(6)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起