笔试刷题-百度2018-06-21

题目描述:


/**
度度熊最近对全排列特别感兴趣,对于1到n的一个排列,
度度熊发现可以在中间根据大小关系插入合适的大于和小于符号(即 '>' 和 '<' )
使其成为一个合法的不等式数列。
但是现在度度熊手中只有k个小于符号即('<'')
和n-k-1个大于符号(即'>'),
度度熊想知道对于1至n任意的排列中有多少个排列可以使用这些符号使其为合法的不等式数列。

输入描述:
输入包括一行,包含两个整数n和k(k < n ≤ 1000)

输出描述:
输出满足条件的排列数,答案对2017取模。

输入例子1:
5 2

输出例子1:
66

*/

思路如下:

K个小于好把n给数分成了k+1个降序序列
descSeq1 descSeq2 ... descSeq(k+1)
其中descSeq也可能是单独一个数而已也教程降序序列
dp[n][k]表示用前1-n个数全排列, 用k个小于号和n-1-k给大于号分割的合法数目
dp[n][k]可以由两种部分构成 dp[n-1][k] dp[n][k-1]、

dp[n-1][k]要变成dp[n][k]就是在原来的1-n-1的全排列中插入一个n然后使得小于号数目不增加
那么只能放在descSeq1 或 descSeq2...或descSeq(k+1)相应序列的最左边这样才不会增加小于号数目
这样一个原来在dp[n-1][k]中的合法序列插入n后对应了 k+1个新的序列

dp[n][k-1]要变成dp[n][k]就是在1-n-1全排列中插入一个n使得小于号数目增加1
descSeq1 descSeq2...descSeq(k)
可以插入在一个descSeq中见的位置
原来有n-1个数那么n插入的位置有n个位置,但是不能插入在descSeq的最左端的位置这样不增加小于号
那么一共有k个descSeq那么只能插入的位置n-k

n>k
dp[n][k]=(k+1)dp[n-1][k]+(n-k)dp[n-1][k-1]

n>=2
base case:
dp[n][k]=0(n<=k)

dp[n][0]=1

代码如下:


#include<stdio.h>
#include<iostream>

#define MAX_N 1005
#define MAX_K 1005
#define MOD 2017

using namespace std;

int dp[MAX_N][MAX_K];

int main(){
    int N, K;
    scanf("%d%d", &N, &K);
    for(int n=0; n<=N; n++)
        dp[n][0]=1;
    for(int n=2; n<=N; n++){
        for(int k=0; k<n; k++){
            dp[n][k]=((k+1)*dp[n-1][k])%MOD+((n-k)*dp[n-1][k-1])%MOD;
            dp[n][k]%=MOD;
        }
    }
    printf("%d", dp[N][K]);
    return 0;
}



©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容

  • 动态规划(Dynamic Programming) 本文包括: 动态规划定义 状态转移方程 动态规划算法步骤 最长...
    廖少少阅读 3,275评论 0 18
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,340评论 0 2
  • 初始化git仓库: git init 自报家门: git config --global user.name "x...
    小破孩_小翟阅读 493评论 0 0
  • 林夏蜕变三届第二程念念感恩(0710) 【今日感恩】 感恩朋友为孩子报了夏令营活动,并开车把孩子送到夏令营营地。 ...
    爱相续阅读 137评论 0 1
  • 我想进简书,以程序员的身份。 哦,你们问我为什么不直接去简书面试程序员,废话,当然是因为我连面试机会都没有啊。 最...
    我要变得很有钱阅读 132评论 2 0