1 条题解

  • 0
    @ 2025-8-24 21:24:05

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 巨型方块
    **

    搬运于2025-08-24 21:24:04,当前版本为作者最后更新于2017-06-13 10:57:52,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    ..... .. 额,这个就是dp啊;

    思路和p1240 是很像的;

    我先把这个图像左右反转一下,这样方便dp

    f[j][i]代表前j列放i个的方案;

    v[j]代表第j列的高度;

    f[j][i]=(f[j-1][i]+f[j-1][i-1]*(v[j]-i+1))%mo;

    答案就是f[a+c][m]

    ... 没了啊

    #include<bits/stdc++.h>
    using namespace std;
    const int N=2e3+5;
    int f[N][N],v[N];
    int a,b,c,d,m,ans,mo=100003;
    int main()
    {
        scanf("%d%d%d%d%d",&a,&b,&c,&d,&m);
        for(int i=1;i<=c;i++)v[i]=d,f[i][0]=1;
        for(int i=1;i<=a;i++)v[c+i]=d+b,f[c+i][0]=1;
        f[0][0]=1;
        for(int j=1;j<=a+c;j++)
            for(int i=1;i<=m;i++)
                f[j][i]=(f[j-1][i]+f[j-1][i-1]*(v[j]-i+1))%mo;
        printf("%d",f[a+c][m]);
    }
    
    • 1

    信息

    ID
    348
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者