zoukankan      html  css  js  c++  java
  • bzoj2431:[HAOI2009]逆序对数列

    单组数据比51nod的那道题还弱。。。而且连优化都不用了。。

    #include<cstdio>
    #include<cstring>
    #include<cctype>
    #include<algorithm>
    using namespace std;
    #define rep(i,s,t) for(int i=s;i<=t;i++)
    #define dwn(i,s,t) for(int i=s;i>=t;i--)
    #define clr(x,c) memset(x,c,sizeof(x))
    const int nmax=1e3+5;
    const int mod=10000;
    int n,k,f[nmax],sm[nmax];
    int main(){
        scanf("%d %d",&n,&k);
        rep(i,0,k) sm[i]=1;
        f[0]=1;
        rep(i,2,n){
            rep(j,1,k) {
                if(j-i>=0)   f[j]=(sm[j]-sm[j-i]+mod)%mod;
                else f[j]=sm[j]%mod;
            }
            rep(j,1,k) sm[j]=(sm[j-1]+f[j])%mod;
        }
        printf("%d
    ",f[k]);
        return 0;
    }
    

      

    2431: [HAOI2009]逆序对数列

    Time Limit: 5 Sec  Memory Limit: 128 MB
    Submit: 1682  Solved: 971
    [Submit][Status][Discuss]

    Description

    对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数。若对于任意一个由1~n自然数组成的数列,可以很容易求出有多少个逆序对数。那么逆序对数为k的这样自然数数列到底有多少个?

    Input

     第一行为两个整数n,k。

    Output

    写入一个整数,表示符合条件的数列个数,由于这个数可能很大,你只需输出该数对10000求余数后的结果。

     

    Sample Input

    样例输入

    4 1


    Sample Output

    样例输出

    3

    样例说明:

    下列3个数列逆序对数都为1;分别是1 2 4 3 ;1 3 2 4 ;2 1 3 4;



    测试数据范围

    30%的数据 n<=12

    100%的数据 n<=1000,k<=1000

    HINT

     

    Source

    [Submit][Status][Discuss]
  • 相关阅读:
    oracle 查看表空间使用率
    解决linux下vim中文乱码问题
    linux 时间同步
    oracle ho与mysql system命令
    mysql 重置root密码
    2020 10 26
    2020 10 24
    2020 10 23
    2020 10 22
    2020 10 21
  • 原文地址:https://www.cnblogs.com/fighting-to-the-end/p/5858076.html
Copyright © 2011-2022 走看看