排列的排名

2022-05-13 23:51:02 字數 1226 閱讀 4183

b 排列

檔名 輸入檔案 輸出檔案 時間限制 空間限制

perm.pas/c/cpp perm.in perm.out 1s 128mb

題目描述

小 g 喜歡玩排列。現在他手頭有兩個 n 的排列。n 的排列是由 0,1,2,...,n − 1

這 n 的數字組成的。對於乙個排列 p,order(p) 表示 p 是字典序第 order(p) 小的

排列(從 0 開始計數)。對於小於 n! 的非負數 x,perm(x) 表示字典序第 x 小的排

列。現在,小 g 想求一下他手頭兩個排列的和。兩個排列 p 和 q 的和為 sum =

perm((order(p) + order(q))%n!)。

輸入格式

輸入檔案第一行乙個數字 n,含義如題。

接下來兩行,每行 n 個用空格隔開的數字,表示小 g 手頭的兩個排列。

輸出格式

輸出一行 n 個數字,用空格隔開,表示兩個排列的和。

樣例輸入 1

20 1

1 0樣例輸出 1

1 0樣例輸入 2

31 2 0

2 1 0

3樣例輸出 2

1 0 2

資料範圍

1、2、3、4 測試點,1 ≤ n ≤ 10。

5、6、7 測試點,1 ≤ n ≤ 5000,保證第二個排列的 order ≤ 10 5 。

8、9、10 測試點,1 ≤ n ≤ 5000。

思路:這是排列的排名問題。

第一遍做我直接去算那個排名了,但大資料的話就需要用rank陣列來加減進製了

#include #include 

#include

#include

#include

#include

using

namespace

std;

const

int n=5009

;int

n;int

p[n],q[n];

intpp1[n],pp2[n],ans[n];

bool

cnt[n];

intmain()

for(int i=n;i>=1;i--)

printf(

"%d

",sum);

cnt[sum]=1

; }

return0;

}

語言 全排列 函式 巧用R中的各種排名視窗函式

前言 在sql中巧用視窗函式可以解決很多複雜的問題,視窗函式有4種函式型別 排名函式 偏移函式 聚合函式和分布函式,詳細介紹可以瀏覽 視窗函式 第一彈 視窗函式簡介 視窗函式 第二彈 排名函式和偏移函式 視窗函式 第三彈 聚合函式和分布函式 r語言中,也有與sql中一一對應的4種型別的視窗函式,除了...

分數排名 mysql mysql的分數排名處理

問題 將資料庫score表排名 返回排名前10的 db有兩種方法 1 效率不高,因為有子查詢。但是簡潔。而且我對socres表做了index。所以效能上也差 不了多少。mysql show create table scores g 1.row table scores create table c...

檔案內容排名演算法,輸入排名函式,返回排名後的檔名

快取優化查詢 const fs require fs 比較字元基類大小 相同返回0,str1 str2 返回1,str1function str compare str1,str2 else if str1.charcodeat index else if dis 0 indexreturn dis...