问题 F: 分盒子(经典)
問題 F: 分盒子
時(shí)間限制: 1 Sec 內(nèi)存限制: 128 MB
[提交][狀態(tài)][討論版]
題目描述
國際婦女節(jié)馬上就要到了!波利卡正在為假期做準(zhǔn)備。
商店里有n個(gè)糖果盒出售。這個(gè)盒子里有糖果。
Polycarp希望為k個(gè)女孩準(zhǔn)備最多的禮物。每一份禮物將由兩個(gè)盒子組成。女孩們應(yīng)該能夠平等地分享每一份禮物,所以一份禮物(在一對(duì)盒子里)中的糖果總數(shù)應(yīng)該能被k整除。換句話說,如果di+dj能被k整除,那么兩個(gè)盒子i和j (i≠j)可以組合作為禮物。
Polycarp能提供多少個(gè)盒子?當(dāng)然,每個(gè)盒子只能是一件禮物的一部分。Polycarp不能“部分”使用盒子,也不能在盒子之間重新分配糖果。
輸入
輸入的第一行包含兩個(gè)整數(shù)n和k(1≤n≤2?105,1 ≤k≤110)——箱子數(shù)量和號(hào)碼的女孩。
輸入的第二行包含n個(gè)整數(shù)d1,d2,…,dn(1≤di≤109),其中di為第i個(gè)盒子中的糖果數(shù)量。
多組數(shù)據(jù)輸入
輸出
打印一個(gè)整數(shù)——Polycarp可以作為禮物贈(zèng)送的盒子的最大數(shù)量。
樣例輸入
7 2
1 2 2 3 2 4 10
8 2
1 2 2 3 2 4 6 10
7 3
1 2 2 3 2 4 5
樣例輸出
6
8
4
提示
第一組可以選(2,3),(5,6),(1,4),可以使用6個(gè)盒子,所以答案為6
/*
之前做過 一個(gè) 統(tǒng)計(jì) 一個(gè)素?cái)?shù)對(duì)和等于n 的素?cái)?shù)對(duì)的個(gè)數(shù) 的題目,和這題有異曲同工之妙。
湊一對(duì)和為某個(gè)值的對(duì)數(shù),就要像辦法拆分分別統(tǒng)計(jì)可以湊成一對(duì)的單個(gè)元素的個(gè)數(shù)。
這題,要使一對(duì)和能整除k。
先對(duì)數(shù)據(jù)預(yù)處理,每個(gè)數(shù)對(duì)k取余以簡化計(jì)算,取余的結(jié)果同數(shù)組mp數(shù)組統(tǒng)計(jì)個(gè)數(shù)。
最終只要統(tǒng)計(jì)的mp[i],mp[k-i]有值就來計(jì)算答案。
特別考慮mp[0],和 i==k-i 的情況
*/
ac_code:
總結(jié)
以上是生活随笔為你收集整理的问题 F: 分盒子(经典)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 问题 E: 括号规则
- 下一篇: 问题 G: 果汁店的难题(贪心)