主要題意就是給你乙個排列組合,要輸出指定ai>i的個數輸出符合的排列組合與1000000007取模個數。
input
there are several test cases, and one line for each case, which contains two integers, n and k. (1 <= n <= 1000, 0 <= k <= n).
output
output one line for each case. for the answer may be quite huge, you need to output the answer module 1,000,000,007.
題解:dp[n]kj]表示n個數有k個a[n]>k的方案數,對於dp[n-1][k-1],最後乙個數可以使它與a[n]<=n的任意乙個數交換,一共(n-1-(k-1)) 換法,對於dp[n-1][k],要麼直接放在最後一位,要麼與a[n]>n的任意乙個數交換,一共(k+1)換法,因此 得出動態方程 dp[n][k]=dp[n-1][k-1](n-k)+dp[n-1][k](k+1)。
這題其實感覺就是最長子序列的改裝。
#include
#include
using namespace std;
int long long dp[1005][1005];
int mod=1e9+7;
int main()
while(cin>>n>>k)
}
poj1037 dp 排列計數
今天學習dp 看的是北大培訓的課件 看到了這道題 開始看的時候 就算知道是dp 也不知道怎麼去寫 後面看了ac 直接寫思路 c i k down 表示的是前i根木頭中 以k打頭陣的down總數 c i k up 表示的是 前i根木頭中 以k打頭陣的up總數 再寫這道題時 首先要知道怎麼去排列計數 直...
Perm排列計數
記憶體限制 512 mib 時間限制 1000 ms 標準輸入輸出 題目描述 稱乙個1,2,n的排列p1,p2.pn是magic的,當且僅當2 i n時,pi pi 2.計算1,2,n的排列中有多少是magic的,答案可能很大,只能輸出模p以後的值 輸入格式 輸入檔案的第一行包含兩個整數 n和p,含...
Perm 排列計數
題目描述 稱乙個1,2,n的排列p1,p2.pn是magic的,當且僅當2 i n時,pi pi 2.計算1,2,n的排列中有多少是magic的,答案可能很大,只能輸出模p以後的值 輸入格式 輸入檔案的第一行包含兩個整數 n和p,含義如上所述。輸出格式 輸出檔案中僅包含乙個整數,表示計算1,2的排列...