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