題意: m個字母,組成兩個長度為n的字元,其中乙個字母不能同時出現在兩個串中。問總方案?
思路:列舉m個中恰好有i個在第乙個串,有j個在第二個串。。然後求個和。。具體其中n個空恰好k種顏色,可以用dp預處理。
dp[j][i]=((dp[j-1][i]*i)%mod+(dp[j-1][i-1]*i)%mod)%mod;
**:
#includeusing namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
#define bug puts("bug");
#define pb push_back
#define mp make_pair
#define x first
#define y second
typedef unsigned long long ll;
typedef pairpii;
const int maxn=4e5+10;
const int mod=1e9+7;
using namespace std;
int t,m,n,k;
ll c[2005][2005];
ll dp[2005][2005];
ll a(ll x)
int main()
for (ll i = 1; i < 2005; i++)
scanf("%d",&t);
while(t--)
printf("%lld\n",ans);
}return 0;
}
HDU 6143 排列組合 DP
題意 給出m字母,現在要求用m個字母去取名字,firstname 和 lastname 不能同時存在相同字母,問 會有多少種組合數,對於firstname 和 lastname 必須保證長度為n。資料量 0m 2000 題意 最開始最開始用的dp去推出所有的解,複雜度達到了n3 平常對複雜度的不重視...
HDU 5698 組合數學
傳送門 計算走i步的方法數 走i步 可以分解為在x方向上走的 x1,x2,xi 在y1,y2,yi 步 就是將 n 1分解為i的不為0的數,就相當於在n 2個空裡插入i 1個版 將 m 1 分解為i個不為0的數 也就是 c n 2,i 1 c m 2,i 1 總數也就是sum c n 2,i 1 c...
HDU 4248 DP與組合數學
include include const int maxn 110 const int mod 1e9 7 int c maxn maxn maxn num maxn long long dp maxn maxn maxn int n,kase void init int main int arg...