zoukankan      html  css  js  c++  java
  • Suffix

    $

    题目描述

    给定一个序列(A),请你输出(sum_{1< i< j < k < h}A_iA_jA_kA_h(mod ~~1e9+7))

    (Solution)

    这个题顾名思义,就是一道考察前缀和的题,但是这其中竟然还涉及了(DP)递推的思想,首先,我们可以令(sum[i][j])表示(i)这个位置乘了(j)个数所得的结果,并且防止刚刚更新的值继续更新接下来要更新的值,就需要用到01背包的方法,从后往前滚动数组来防止这一结果,那我们就可以从这个位置的上一个位置来转移过来。

    #include <bits/stdc++.h>
    #define mod 1000000007
    using namespace std;
    long long sum[1000100][6];
    long long ans = 0;
    int main()
    {
        int n;
        scanf("%d", &n);
        for (int i = 0; i <= n; i++)
            sum[i][0] = 1LL;
        for (int i = 1; i <= n; i++)
        {
            int a;
            cin >> a;
            for (int j = 4; j >= 1; j--)
            sum[i][j] = (long long) ((long long) sum[i - 1][j] % mod + (long long) sum[i - 1][j - 1] % mod * a) % mod;
        }
        printf("%lld", sum[n][4] % mod);
    }
    
  • 相关阅读:
    内部共享上网
    Harbor部署
    一、Gitlab安装
    Dockerfile
    DockerCompose
    二、Git
    nginx域名代理
    三、jenkins持续集成工具安装
    chrome对于“submit”关键字的保留
    insightface 提取人脸特征(超简洁)
  • 原文地址:https://www.cnblogs.com/liuwenyao/p/9905045.html
Copyright © 2011-2022 走看看