• DP-------bzoj2699 更新


    题目描述:

    对于一个数列A[1..N],一种寻找最大值的方法是:依次枚举A[2]到A[N],如果A[i]比当前的A[1]值要大,那么就令A[1]=A[i],最后A[1]为所求最大值。假设所有数都在范围[1, K]内,按上面的步骤执行,有多少个长度N的数列满足A[1]被更新的次数恰好为P呢?

    输入格式:

    本题有多组数据。输入第一行一个数T为数据组数,下面T行每行依次三个数N、K和P。

    输出格式:

    对每组数据输出一行,为方案数模1000000007的值。

    输入:

    3
    4 3 2
    2 3 1
    3 4 1

    输出:

    6

    3

    30

    代码:

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstdlib>
     4 #define mod 1000000007
     5 using namespace std;
     6 long long sum[155][155][330]; 
     7 int main()
     8 {
     9     int i,j,k,T,x,y,z;
    10     for( i=1;i<=300;i++)sum[1][1][i]=i;
    11     for( i=2;i<=150;i++)
    12         for( j=1;j<=150;j++)
    13             for(k=1;k<=300;k++)
    14         {
    15 sum[i][j][k]=(sum[i][j][k-1]+sum[i-1][j-1][k-1]+(sum[i-1][j][k]-sum[i-1][j][k-1])*k % mod+mod)%mod;        
    16         }
    17         scanf("%d",&T);
    18         while(T--)scanf("%d%d%d",&x,&y,&z),printf("%lld
    ",sum[x][z+1][y]);
    19         return 0;
    20 }
    

      

     

  • 相关阅读:
    iscsi: 多路径
    Paxos算法分析
    ceph实践: 搭建环境
    ocfs2: 搭建环境
    设计模式:Context模式
    Ceph剖析:Leader选举
    Ceph剖析:定时器safetimer的实现
    nfs:环境搭建
    Ceph剖析:数据分布之CRUSH算法与一致性Hash
    Linux命令小结:crontab/netstat/iostat/sar
  • 原文地址:https://www.cnblogs.com/yelir/p/11300965.html
Copyright © 2020-2023  润新知