3746 鋼琴演奏家

2021-10-23 04:57:54 字數 1643 閱讀 4687

單點時限: 1.5 sec

記憶體限制: 512 mb

cuber qq 在疫情期間已經宅在家兩個月了。

實在是無所事事的他,決定重操舊業,繼續實現他曾經夢寐的鋼琴演奏家夢想。

掀開積滿了灰塵的鋼琴蓋,是他許久都未觸碰的琴鍵,按下的瞬間,他發現,鋼琴壞了。

cuber qq 有乙個多年的彈奏習慣,他彈奏鋼琴,同一時刻一定會同時按下 m 個琴鍵,他喜歡不同音調交織在一起的聲音,可是現在不允許了。

可能是因為時間的原因,鋼琴不支援琴鍵並行(**帶師 cuber qq 發明的詞彙)了。通俗來說,當 cuber qq 同時按下 m 個琴鍵的時候,鋼琴只會發出音調最高的那個琴鍵的聲音。

不甘心的 cuber qq 開始嘗試每乙個 m 鍵的組合。他會記錄下每一次鋼琴發出的音調,他會統計所有演奏出的音調之和,為了驗證自己有沒有算錯,他邀請你來幫他再算一遍。

需要注意的是,因為鋼琴壞了,所以可能存在相同音調的琴鍵。

由於這個和可能會很大,你只需要告訴 cuber qq 這個和模 109+7 的結果是多少。

輸入格式

輸入資料第一行包含乙個整數 t (1≤t≤1000) 表示資料組數。

對於每一組資料,第一行包含兩個整數 n, m (1≤m≤n≤106) ,分表表示鋼琴的琴鍵數量和每次同時按下的琴鍵個數。

第二行包含 n 個整數 a1,a2,…,an (0≤ai≤109),表示琴鍵的音調(可能會出現相同的音調)。

保證對於所有資料有 ∑n≤106 。

輸出格式

對於每組資料輸出一行,包含乙個整數表示答案。

由於答案可能很大,需要對 109+7 取模。

樣例input

13 2

1 2 3

output

8lucas定理可參照上篇3006. 計算多項式的係數 ii

/*

*/#include

using

namespace std;

typedef

long

long ll;

const

int n=

1e6+5;

const ll p=

1e9+7;

ll c[n]

;ll a[n]

;void

factors()

}ll binarypow

(ll a,ll b)

a=a*a%p;

b>>=1;

}return ans;

}ll comp

(ll n,ll m)

ll f

(ll a,ll b)

return k;

}int

main()

sort

(a,a+n)

;for

(int i = m-

1; i < n; i++

) ans=

(ans+a[i]

*comp

(i,m-1)

)%p;

// ans=(ans+f(a[i],comp(i,m-1)))%p;

printf

("%lld\n"

,ans);}

return0;

}

RMQ 超級鋼琴

超級鋼琴 超級鋼琴 問題描述 小z 是乙個小有名氣的鋼琴家,最近 c 博士送給了小z一架超級鋼琴,小 z 希望能夠用這架鋼琴創作出世界上最美妙的 這架超級鋼琴可以彈奏出 n個音符,編號為 1至n。第i個音符的美妙度為 ai,其中ai可正可負。乙個 超級和弦 由若干個編號連續的音符組成,包含的音符個數...

MoonLightPiano 月光鋼琴

moonlightpiano 月光鋼琴 sourcecontrol listdownloadablecommits.aspx release release projectreleases.aspx 開發 nasa.wang 設計 summer.liang 功能簡述 簡介 程式部分結構採用silve...

C 彈鋼琴程式

網上的flash鋼琴老要在瀏覽器玩,覺得不爽,就寫了個window程式,如下,至於a z.在這裡鏈結 using system using system.collections.generic using system.componentmodel using system.data using s...