C. Game of Mathletes
1.C. Game of Mathletes
题目链接:https://codeforces.com/contest/2060/problem/C
题意:
给定一个长度为n的数组和一个固定数值k。
每轮alice从中选择一个数字并擦除,bob选择一个数值并擦除
如果他们两个选择的数字加起来等于k,那么分数+1
alice要让得分尽量小,bob要让得分尽量大,求最终得分
并且n为偶数
思路:
alice总是趋向于选择 那些无法与其他数组合得到k/可以组合但是是多余的那几个 的数字
那么此时bob也会选择 那些无法与其他数组合得到k/可以组合但是是多余的那几个 的数字
这些数字是成对的
那么就剩下可以组合成k的数字对了
此时数字对个数即为最终分数
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+5;
int t;
int arr[maxn];
signed main()
{
ios::sync_with_stdio(false),cin.tie(0);
cin>>t;
while(t--){
map<int,int>mp;
int n,k;cin>>n>>k;
for(int i=0;i<n;i++){
int x;cin>>x;
mp[x]++;
arr[i]=x;
}
int ans=0;
for(int i=0;i<n;i++){
int v=min(mp[arr[i]],mp[k-arr[i]]);if(v<=0)continue;
if(arr[i]==k-arr[i])v/=2;
ans+=v;
mp[arr[i]]-=v;
mp[k-arr[i]]-=v;
}
cout<<ans<<endl;
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!