【代码超详解】Codeforces 1335C. Two Teams Composing(思维)

一、传送门https://codeforces.com/contest/1335/problem/C二、算法分析说明与代码编写指导特判:n = 1 的时候,一个人不能分出两个组,答案为 0n = 2 的时候,无论两个人的技能相同或不同,答案都为 1。用集合 s 去重,s.size() 表示技能种数 k。b[i] 表示拥有技能 i 的人数。数组 b 的最大值设为 m。分两种情况:①...
摘要由CSDN通过智能技术生成

一、传送门

https://codeforces.com/contest/1335/problem/C

二、算法分析说明与代码编写指导

特判:
n = 1 的时候,一个人不能分出两个组,答案为 0
n = 2 的时候,无论两个人的技能相同或不同,答案都为 1。
用集合 s 去重,s.size() 表示技能种数 k。
b[i] 表示拥有技能 i 的人数。数组 b 的最大值设为 m。
分两种情况:
①第一组,从会每个技能的人里面各挑 1 个,大小不超过 d。第二组,从掌握被最多掌握的技能的人里挑,人数最多为 m - 1。两组人数要相等,最终为 r1 = min(d, m - 1)。
②第一组,除了被掌握最多的技能以外,从会每个技能的人里面各挑 1 个,大小不超过 d - 1。第二组,从掌握被最多掌握的技能的人里挑,人数最多为 m。两组人数要相等,最终为 r2 = min(d - 1, m)。
最终答案为 max(r1, r2)。

三、AC 代码

麻蛋,比赛的时候写出了正解,但是 16 行和 17 行用的是 puts,G++ 提交直接 Wrong answer on test 1 了。
补题的时候换用 MSVC 直接 A 掉。

std:: ios::sync_with_stdio(false); std::cin.tie(0);

这两句启用以后不能混用 stdio 和 iostream 进行输入输出。
<-, -> 我一直以为不混用 cin/cout 和 scanf/printf 就可以了,妈的,rating 要跌出屎了。
如果是出去比赛的话,因为机子都是 Linux 的,所以没有 MSVC 用。哎。

#include<algorithm>
#include<set>
#include<iostream>
#pragma warning(disable: 4996)
typedef unsigned cha
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值