F-子序列(组合数,打表,扩展欧拉,容斥)
生活随笔
收集整理的這篇文章主要介紹了
F-子序列(组合数,打表,扩展欧拉,容斥)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目鏈接
題目描述
給出一個(gè)長度為n的序列,你需要計(jì)算出所有長度為k的子序列中,除最大最小數(shù)之外所有數(shù)的乘積相乘的結(jié)果
輸入描述:
第一行一個(gè)整數(shù)T,表示數(shù)據(jù)組數(shù)。 對(duì)于每組數(shù)據(jù),第一行兩個(gè)整數(shù)N,k,含義如題所示接下來一行N個(gè)整數(shù),表示給出的序列保證序列內(nèi)的數(shù)互不相同輸出描述:
對(duì)于每組數(shù)據(jù),輸出一個(gè)整數(shù)表示答案,對(duì)取模 每組數(shù)據(jù)之間以換行分割輸入
3 4 3 5 3 1 4 5 4 3 7 5 2 1 10 3 100 1020 2050 102 12 235 4 57 32135 54354輸出
144 81000 521918013說明
第一組數(shù)據(jù)解釋 所有長度為3的子序列為(5,3,1)(5,3,4)(3,1,4)(5,1,4) 最終答案為 3*4*3*4 = 144AC
容斥求出每個(gè)數(shù)利用的個(gè)數(shù),總的出現(xiàn)次數(shù)-這個(gè)數(shù)作為最小值出現(xiàn)-這個(gè)數(shù)作為最大值出現(xiàn)
a[i]:C(nk?1)?C(n?ik?1)?C(i?1k?1)a[i]:C(nk?1)?C(n?ik?1)?C(i?1k?1)
求組合數(shù)可以打表,組合數(shù)的數(shù)值很大而且結(jié)果要作為指數(shù)計(jì)算,這里就要用到擴(kuò)展歐拉
ab=ab%?(p)ab=ab%?(p)
總結(jié)
以上是生活随笔為你收集整理的F-子序列(组合数,打表,扩展欧拉,容斥)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU Problem - 5918 S
- 下一篇: Problem - 6111迷宫出逃