zoukankan      html  css  js  c++  java
  • 递推

                                                                                                                   排队   

      题目描述

    • 小花所在的班有n名同学(任何两位同学身高不相同),正准备排成一列纵队,但他们不想按身高从矮到高排,那样太单调,太没个性。
    • 他们希望恰好有k对同学是高的在前,矮的在后,其余都是矮的在前,高的在后。如当n=3,k=5时,假设5人从矮到高分别标为1,2,3,4,5,则 (1,5,2,3,4)(2,3,1,5,4) 都是可行的排法。
    • 小花想知道总共有多少种可行排法
    • 输入格式
    • 一行两个整数n 和k,意义见问题描述。
    • 输出格式

    • 输出一个整数,表示可行排法数。由于结果可能很大,请输出排法数mod1799999的值

    • 样例

    • 样例输入

    • 5 3

    • 样例输出
    • 15
    • 数据范围与提示
      n<=100,k<=n*(n-1)/2
    • 思路:一般这种结果很大看起来不太好做的题貌似都可以想想递推式,设f[i][j]为前i个数j对逆序对的排法和,得f[i][j]=f[i-1][j]+f[i-1][j-1]+f[i-1][j-2]+.....+f[i-1][j-i+1],(最后一个数i可提供0到i-1个逆序对),同理:f[i][j-1]=f[i-1][j-1]+f[i-1][j-2]+f[i-1][j-3]+.....+f[i][j-i],二式合并得f[i][j]=f[i-1][j]+f[i][j-1]-f[i][j-i]
    •  
  • 相关阅读:
    回归,随缘写一些python心得吧
    划分树【有些东西,其实自己还不太会也要忍住把*装完】
    [codevs3273]两圆的交 计算几何
    10-12考试整理
    10-7考试整理
    [codevs1163]访问艺术馆
    [codevs2640]打印页数
    9-28 解题报告
    [CODEVS3323]时空跳跃者的封锁
    [codevs2442] kshort 经典题
  • 原文地址:https://www.cnblogs.com/HZOIDJ123/p/13280410.html
Copyright © 2011-2022 走看看