數(shù)列還原

題目描述

牛牛的作業(yè)薄上有一個長度為 n 的排列 A损俭,這個排列包含了從1到n的n個數(shù)数焊,但是因為一些原因疯搅,其中有一些位置(不超過 10 個)看不清了,但是牛牛記得這個數(shù)列順序?qū)Φ臄?shù)量是 k健爬,順序?qū)κ侵笣M足 i < j 且 A[i] < A[j] 的對數(shù),請幫助牛牛計算出么介,符合這個要求的合法排列的數(shù)目娜遵。

輸入描述:

每個輸入包含一個測試用例。每個測試用例的第一行包含兩個整數(shù) n 和 k(1 <= n <= 100, 0 <= k <= 1000000000)壤短,接下來的 1 行设拟,包含 n 個數(shù)字表示排列 A慨仿,其中等于0的項表示看不清的位置(不超過 10 個)。

輸出描述:

輸出一行表示合法的排列數(shù)目纳胧。

示例1

輸入

5 5
4 0 0 2 0

輸出

2

思路:
1.因為往數(shù)組里插入一個數(shù)镰吆,不會影響到原來的順序?qū)Γ迦胍粋€數(shù)后跑慕,新的順序?qū)?原順序?qū)?由于插入產(chǎn)生的順序?qū)Α?br> 2.總順序?qū)?給定數(shù)的順序?qū)?未給定數(shù)的順序?qū)?混合時產(chǎn)生的順序?qū)Α?br> 3.未給定的數(shù)可以有各種排列万皿,所以要求出他的全排列,以及每一種情況對應(yīng)混合時產(chǎn)生的順序?qū)Α?/p>

題解:

#include<cstdio>
#include<algorithm>
using namespace std;
int n;
long long k;
int arr[110];
int num[110];
int missidx[11];
int missnum[11];
int order[110][110];
int getOrderPair(int arr[], int n){
    int cnt=0;
    for(int i=0;i<n;i++){
        if(arr[i] == 0) continue;
        for(int j=i+1;j<n;j++){
            if(arr[j]==0) continue;
            if(arr[i]<arr[j]) cnt++;
        }
    }
    return cnt;
}
int main(){
    scanf("%d %lld", &n, &k);
    int cnt=0;
    for(int i=0;i<n;i++){
        scanf("%d", &arr[i]); 
        if(arr[i] == 0){
            missidx[cnt++]=i;
        }else{
            num[arr[i]] = 1;
        }
    }
    cnt=0;
    for(int i=1;i<=n;i++){
        if(num[i]==0){
            missnum[cnt++]=i;
        }
    }
    //計算給定數(shù)組的順序?qū)?    int given = getOrderPair(arr, n);
    if(given>k){
        printf("%d", 0);
    }
    
    //計算未給定數(shù)據(jù)排在每個缺失的位置上產(chǎn)生的順序?qū)?    //每個缺失的數(shù)
    for(int i=0;i<cnt;i++){
        //每個缺失的位置
        for(int j=0;j<cnt;j++){
            //遍歷數(shù)組
            for(int r=0;r<n;r++){
                if(arr[r] == 0) continue;
                if(r < missidx[j] && arr[r] < missnum[i]) order[missidx[j]][missnum[i]]++;
                if(r > missidx[j] && arr[r] > missnum[i]) order[missidx[j]][missnum[i]]++;
            }
        }
    }
    
    int ans = 0;
    //計算對于未給定的數(shù)的全排列所產(chǎn)生的順序?qū)?    do{
        int notGiven = getOrderPair(missnum, cnt);
        for(int i=0;i<cnt;i++){
            notGiven += order[missidx[i]][missnum[i]];
        }
        if(given + notGiven == k){
            ans++;
        }
    }while(next_permutation(missnum, missnum+cnt));
    printf("%d", ans);
    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末核行,一起剝皮案震驚了整個濱河市牢硅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芝雪,老刑警劉巖减余,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惩系,居然都是意外死亡位岔,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門堡牡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抒抬,“玉大人,你說我怎么就攤上這事悴侵∏破剩” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵可免,是天一觀的道長抓于。 經(jīng)常有香客問我,道長浇借,這世上最難降的妖魔是什么捉撮? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮妇垢,結(jié)果婚禮上巾遭,老公的妹妹穿的比我還像新娘。我一直安慰自己闯估,他們只是感情好灼舍,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涨薪,像睡著了一般骑素。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刚夺,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天献丑,我揣著相機與錄音末捣,去河邊找鬼。 笑死创橄,一個胖子當著我的面吹牛箩做,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播妥畏,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邦邦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了咖熟?” 一聲冷哼從身側(cè)響起圃酵,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎馍管,沒想到半個月后郭赐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡确沸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年捌锭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罗捎。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡观谦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桨菜,到底是詐尸還是另有隱情豁状,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布倒得,位于F島的核電站泻红,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏霞掺。R本人自食惡果不足惜谊路,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望菩彬。 院中可真熱鬧缠劝,春花似錦、人聲如沸骗灶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耙旦。三九已至脱羡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背轻黑。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留琴昆,地道東北人氓鄙。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像业舍,于是被迫代替她去往敵國和親抖拦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 第一次來這里舷暮,是因為一位朋友在這里發(fā)布了自己的文章态罪,于是來這里看看便知道了這里。后來在這里也先后讀過幾篇感興趣的帖...
    tryagain2015閱讀 269評論 0 0
  • 以上文字 紀念老孔 其實,所謂父道 從做事情來講 就是初心 你來的時候的那個樣子 再其實沥割,所謂子志 就是目標 你打...
    時間愛人2016閱讀 1,540評論 0 0
  • 第一周知道了人生的四種類型:忙碌奔波型耗啦、虛無主義型、享樂主義型机杜、感悟幸福型帜讲。想要做一個真正幸福的人必須要有一個明確...
    楊潤秋閱讀 97評論 0 0