51nod 1020 逆序排列 動態規劃

2022-07-27 15:18:25 字數 541 閱讀 6059

分析:記dp[n][k]為n個數,逆序數為k的個數,將dp[n][k]分為兩部分,一部分有1~n-1的逆序構成,一類是有n的逆序,可以得到dp[n+1][k+1]=(max(0,k+1-n),min(k+1,n*(n-1)/2)∑dp[n][i],再用dp[n+1][k+1]與dp[n+1][k]做差,討論一下k和n的關係就可以寫出遞推式了.

1 #include2

using

namespace

std;

3const

int maxn=1005,maxk=20005,p=1e9+7;4

intdp[maxn][maxk];

5int

main()18}

19int

t,n,k;

20 cin>>t;

21while(t--)

25return0;

26 }

51nod 1020 逆序排列

原題鏈結 1020 逆序排列 基準時間限制 2 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。如2 4 3 1中,2 1,4 3,4 1,...

51nod 1020 逆序排列

1020 逆序排列 基準時間限制 2 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。如2 4 3 1中,2 1,4 3,4 1,3 1是逆...

51Nod1020 逆序排列

在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序數是4。1 n的全排列中,逆序數最小為0 正序 最大為n n 1 2 倒序 給出2個數n和k,求...