51nod 1020 逆序排列(dp,遞推)

2022-05-16 22:17:31 字數 576 閱讀 8226

題意:是中文題。

題解:很顯然要設dp[i][j]表示,i個數有j個逆序對有幾種然後就是狀態的轉移,

dp[i][j]=dp[i-1][max(0,j-(i-1)]+.....+dp[i-1][max(j,(i-1)*(i-2)/2];

還會用到字首和,還有注意最後結果加mod再膜mod,結果可能會負數。

#include #include #include #include #define mod 1000000007

using namespace std;

typedef long long ll;

int sum[1000000] , dp[1010][30010];

int main()

else

else

dp[i][j] = dp[i][j] % mod;}}

for(int j = 0 ; j <= i * (i - 1) / 2 && j <= 30000 ; j++)

}scanf("%d" , &t);

while(t--)

return 0;

}

51Nod 1020 逆序排列(DP)

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

51nod1020 逆序排列 dp

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

51nod 1020 逆序排列

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