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]
  • 相关阅读:
    docker 基本概念
    6_State 游戏开发中使用状态机
    5_Singleton 游戏开发中的单例模式
    4_Prototype 原型
    3_observer
    2_flyweight, 轻量化模式
    1_Command 游戏开发命令模式
    CentOS7 Failed to start LSB: Bring up/down解决方法
    CentOS 7 中firewall-cmd命令
    CentOS查询端口占用和清除端口占用的程序
  • 原文地址:https://www.cnblogs.com/fighting-to-the-end/p/5858076.html
Copyright © 2011-2022 走看看