題目大意:
給你乙個長度為n+1的序列。1到n
1到n1到
n至少會出現一次。對於每個k,k
∈[1,
n]
k,k \in[1,n]
k,k∈[1
,n],問你有多少個本質不同的子串行。
題目思路:
一定有一對重複的。如: ***xayyyyyazzzz.
那麼同時選擇x和z
x和zx和
z區域裡的數,不選y
yy區域,且選擇了中間的乙個a.
會導致重複的計數.要用總的減去這個部分.
假設x區域長度為a,y長度為b.那麼式子就是 ∑i=
0kca
i∗cb
k−
i\sum_^c_^*c_^
∑i=0k
cai
∗cbk
−i當時我推到這裡就卡住了,尋思著不是乙個卷積的形式麼。所以無了。但是其實是有名字的。這個東西叫範德蒙德卷積式∑i=
0kca
i∗cb
k−i=
ca+b
k\sum_^c_^*c_^=c_^
∑i=0k
cai
∗cbk
−i=
ca+b
k然後這題就沒了。。。
ac**:
#include
using
namespace std;
#define ll long long
#define pii pair
#define pb push_back
#define mp make_pair
const
int maxn =
2e5+5;
const
int mod =
1e9+7;
int a[maxn]
;ll fact[maxn]
, inv[maxn]
;ll ksm (ll a , ll b)
return ans;
}ll c (ll a , ll b)
int last[maxn]
;int
main()
ios::
sync_with_stdio
(false);
int n; cin >> n;
n++;int gap;
for(
int i =
1; i <= n ; i++
)for
(int i =
1; i <= n ; i++
)return0;
}
組合數公式
若表示在 n 個物品中選取 m 個物品,則如存在下述公式 所以可以用遞推算組合數 題目描述 開學了,學校又迎來了好多新生。acmer想為新生準備乙個節目。來報名要表演節目的人很多,多達n個,但是只需要從這n個人中選m個就夠了,一共有多少種選擇方法?輸入 測試例項包括多組測試資料,每組資料佔一行。每組...
組合數問題(組合數公式轉換 字首和)
組合數的定義 給你n個數,從中取出m個數,共有 cn m中取法,cn m n m n m 重要公式 cnm cn 1 m cn 1 m 1 題目大意 資料有t組,給你n,m,k,問你對於所有的i 0,n j 0,min i,m 有多少對ci j可以整除k。t 1e4,n,m 2000 思路 暴力跑的...
日常 錯排公式 組合數
一,錯排公式 dn n e 0.5 只是近似值!4次wa的代價啊!應該寫成這樣 當n個編號元素放在n個編號位置,元素編號與位置編號各不對應的方法數用m n 表示,那麼m n 1 就表示n 1個編號元素放在n 1個編號位置,各不對應的方法數,其它類推.第一步,把第n個元素放在乙個位置,比如位置k,一共...