CF1195A
2024-09-05 05:43:21
CF1195A
题意:
输入n和k,n是学生的数量,k是饮料种类,接下来的n行会输入每个学生想要的饮料的编号,分配饮料是按一对一对分,每一对都是类型相同的饮料。输出能得到自己想要饮料的最大学生数量
解法:
如果两个学生喝同样的饮料,那就让我们一起喝一杯。 让这些学生的数量(我们可以成对满足)是好的。 因为套数是 $ \frac{n}{2} $ ,我们总能做到。 因此,有些学生可以选择他们想要的饮料。 很明显,如果我们采取一套,我们最多可以满足一个学生(其中一个将不会获得他最喜欢的饮料)。 让这些学生的数量(在满足学生对之后仍然存在)是坏的。 然后答案是好的 $ + \frac{bad}{2} $。
CODE:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define LL long long
#define N 100010
int s[N],n,k,ans,x;
int main() {
scanf("%d%d",&n,&k);
for(int i = 1 ; i <= n ; i++) {
scanf("%d",&x);
s[x]++;
}
for(int i = 1 ; i <= k ; i++) ans += s[i] & 1;
printf("%d",n - ans / 2);
//system("pause");
return 0;
}
最新文章
- android lsitview setOnItemLongClickListener 无效或不执行
- OpenCV中的全景拼接例程
- 关于mysql的错误 - no query specified
- C语言 约瑟夫圈问题:N个人围成一圈,从第一个人开始按顺序报数并编号1,2,3,……N,然后开始从第一个人转圈报数,凡是报到3的退出圈子。则剩下的最后一个人编号是多少。
- Android 第三方应用接入微信平台(2)
- 选择语句----switch case
- HTML5学习笔记(一):HTML简介
- 【Java】java数据库连接池配置的几种方法
- Unity NGUI实现Tabview
- Wikioi 1080一维树状数组
- 如何开发由Create-React-App 引导的应用(三)
- 3D Math Keynote 3
- 背水一战 Windows 10 (96) - 选取器: ContactPicker
- ubuntu中vim下按上下左右键时输入A、B、C、D
- oracle补齐日期
- Linux 设置定时任务 清空日志
- PHP 修改目录下所有与文件夹重名的前缀文件为index.后缀
- 【这特么是个坑。。。】iOS 10.3下解决Charles抓包ssl证书信任问题
- gdbt与adboost(或者说boosting)区别
- 未能加载文件或程序集“log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821”或它的某一个依赖项。系统找不到指定的文件。
热门文章
- Https请求被中止: 未能创建 SSL/TLS 安全通道
- Quartz任务调度:MisFire策略和源码分析
- python实现暴力破解
- pytorch中使用多显卡训练以及训练时报错:expect more than 1 value per channel when training, got input size..
- React/react相关小结
- linux命令启动关闭firewalld防火墙,添加端口
- 【Day5】3.反爬策略之模拟登录
- golang使用sftp连接服务器远程上传、下载文件
- RT-Thread--内核基础
- Codeforces 1179 D - Fedor Runs for President