可求得通項fn=
an−1
a−
1f_n = \frac
fn=a−
1an−
1,乙個等比數列的前n
nn項和,val
ue(s
)=fs
um(s
)value(s) = f_
value(
s)=f
sum(
s)。
題目要我們求的是ans
wer(
k)=∑
s∈su
bset
ofsa
nd∣s
∣=kv
alue
(s
)answer(k) = \sum\limits_value(s)
answer
(k)=
s∈su
bset
ofsa
nd∣s
∣=k∑
val
ue(s
),我們考慮先計算f
nf_n
fn中asu
m(s)
a ^as
um(s
)部分。
所以我們可以寫出生成函式∏i=
1n(1
+asi
)\prod_ ^(1 + a ^)
∏i=1n
(1+a
si)
,遞迴分治進行fft
fftff
t,使這個式子變成乙個多項式。
對於a ns
k=[x
k]−c
nka−
1ans_ = \frac ^}
ansk=
a−1[
xk]−
cnk
,對於每個k
kk有cnk
c_n ^k
cnk
種方案。
然後這題稍卡精度,用lon
gdou
bl
elong\ double
longdo
uble
就好了。
#include
using
namespace std;
#define double long double
struct complex };
complex operator+(
const complex &a,
const complex &b)
complex operator-(
const complex &a,
const complex &b)
complex operator*(
const complex &a,
const complex &b)
complex operator/(
const complex &a,
const complex &b)
typedef
long
long ll;
const
int n =
1e6+10;
int r[n]
;complex x[n]
, y[n]
;void
get_r
(int lim)
}void
fft(complex *f,
int lim,
int rev)
}const
double pi =
acos(-
1.0)
;for
(int mid =
1; mid < lim; mid <<=1)
}}if(rev ==-1
)}}const
int mod =
100003
;int n, a, m, s[n]
;vector<
int> f[n]
;int fac[n]
, inv[n]
;int
quick_pow
(int a,
int n)
a =1ll* a * a % mod;
n >>=1;
}return ans;
}ll c
(int n,
int m)
void
init()
void
solve
(int rt,
int l,
int r)
int mid = l + r >>1;
solve
(rt <<
1, l, mid)
;solve
(rt <<1|
1, mid +
1, r)
;int len1 = mid - l +
1, len2 = r - mid;
for(
int i =
0; i <= len1; i++
)for
(int i =
0; i <= len2; i++
)int lim =1;
while
(lim <= r - l +1)
get_r
(lim)
;fft
(x, lim,1)
;fft
(y, lim,1)
;for
(int i =
0; i < lim; i++
)fft
(x, lim,-1
);for(
int i =
0; i <= r - l +
1; i++
)for
(int i =
0; i < lim; i++)}
intmain()
solve(1
,1, n)
;init()
;int inv =
quick_pow
(a -
1, mod -2)
;for
(int i =
1, k, ans; i <= m; i++
)return0;
}
2019 4 20南昌網路賽
2019.4.20南昌網路賽總結 一開始是a題,自數卡了一會,算出了自數,但是輸出的時候一開始是通過 將數連在一起輸出,wa了,後面換成了換行輸出,才過了。再之後看的是第m題,小組討論了蠻久,後面一直超時,超了一點。感覺演算法也沒什麼可以改進的了。後面隊友把cin換成了scanf,終於過了。然後隊友...
2019南昌網路賽
rank solvedab cdef ghi497 1882 3 9.o o o o 當場通過 賽後通過 尚未通過 unsolved solved by chelly chelly s solution upsolved by chelly chelly s solution 將字串倒過來,問題就變...
徐州,南昌網路賽感受
這個週末連著打了兩場網路賽,通過這種正式的五個小時大的比賽,有了一些不同於兩三個小時的比賽的體會 因為五個小時比較漫長,很是考驗耐心,這兩天基本7上都是一開始很快就能出一道簽到題,然而後勁不足啊,後面出題數總是不多,昨天後面出了兩道題,今天一道都沒出來,今天有道題應該是可以出了,因為讀錯題了導致最後...