Codeforces Round #544 (Div. 3) B.Preparation for International Women's Day
链接:https://codeforces.com/contest/1133/problem/B
题意:
给n个数,和一个k,在n个数中选几对数,保证没对数相加可以整除k。
求最大能选几个数。
思路:
记录每个数mod k的值。
通过mod k的值为多少的数的数量,计算对数。
例 k = 3时。mod k为1 和 mod k 为2 的数可以组成一对满足的数。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <bits/stdc++.h> using namespace std; typedef long long LL; const int MAXN = 2e5 + 10; int Mod[MAXN]; int main() { int n, k, a; cin >> n >> k; for ( int i = 1;i <= n;i++) { cin >> a; Mod[a % k] ++; } int res = Mod[0] / 2; for ( int i = 1;i < k/2;i++) { int ma = min(Mod[i], Mod[k - i]); res += ma; Mod[i] -= ma; Mod[k - 1] -= ma; } if (k % 2 == 0) res += Mod[k / 2] / 2; else res += min(Mod[k / 2], Mod[k - k / 2]); cout << res * 2 << endl; return 0; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 如何打造一个高并发系统?