開啟章節選單
11481 Arrange the Numbers
題目連結
題目翻譯
輸入
輸出
解題思路
程式碼
#include <bits/stdc++.h> using namespace std; #define int long long #define idonthavegirlfriend ios::sync_with_stdio(0), cin.tie(0); #define pb push_back #define yn(a) (a ? "Yes\n" : "No\n") // #include <atcoder/fenwicktree> // #include <atcoder/dsu> // using namespace atcoder // author:Jackis666 int comb[1005][1005]; int dp[1005][1005]; signed main(){ idonthavegirlfriend int MOD=1e9+7; comb[0][0]=1; for(int i=1;i<=1000;i++){ comb[i][0]=comb[i][i]=1; for(int j=1;j<i;j++){ comb[i][j]=(comb[i-1][j]+comb[i-1][j-1])%MOD; } } dp[0][0]=1; for(int i=1;i<=1000;i++){ dp[i][0]=(dp[i-1][0]*(i))%MOD; } for(int i=1;i<=1000;i++){ for(int j=1;j<=i;j++){ dp[i][j]=(dp[i][j-1]-dp[i-1][j-1]+MOD)%MOD; } } int idx=0; int n,m,k; int t; cin>>t; while(t--){ cin>>n>>m>>k; cout<<"Case "<<++idx<<": "<<(comb[m][k]*dp[n-k][m-k])%MOD<<"\n"; } }