Wannafly Camp 2020 Day 5A Alternative Accounts
There are n different accounts on the website, and some of them competed in the recent k contests. However, Mike suspects that there are lots of alternative accounts.
There are axioms believed by everyone that nobody can use two different in one contest simultaneously and each account can be owned by only one person. So different accounts without overlapping contest participation can be owned by the same person.
Mike wants to know the minimum possible number of different people behind these accounts.
k=1
太简单,直接输出个数即可
k=2
max个数即可
k=3
把数字按照它出现的集合分为8类
1类为在所有集合中都出现,这类直接加进答案即可
2,3,4类为在某两个集合中出现,5,6,7类为在某一个集合中出现,8类为没有出现,其中第8类不用计入答案
首先将2类与5类中的一部分“匹配”掉并加入答案,同3-6,同4-7
如果2,3,4类中有剩余,那么这些一定是要被单独算答案的
5,6,7类单独算答案的贡献就是它们的max
我居然把它写RE了(捂脸爪巴爪巴
#include <bits/stdc++.h>
using namespace std;
int n,k,t1,t2,a[9][1000005],s[40];
vector <int> v[9];
int main() {
scanf("%d%d",&n,&k);
for(int i=1;i<=k;i++) {
scanf("%d",&t1);s[i]=t1;
for(int j=1;j<=t1;j++) {
scanf("%d",&t2);
a[i][t2]=1;
}
}
if(k==1) cout<<t1<<endl;
if(k==2) {
cout<<max(s[1],s[2])<<endl;
}
if(k==3) {
for(int i=1;i<=n;i++) {
if(a[1][i]==0 && a[2][i]==0 && a[3][i]==0) v[8].push_back(i);
if(a[1][i]==1 && a[2][i]==1 && a[3][i]==1) v[1].push_back(i);
if(a[1][i]==0 && a[2][i]==1 && a[3][i]==1) v[2].push_back(i);
if(a[1][i]==1 && a[2][i]==0 && a[3][i]==1) v[3].push_back(i);
if(a[1][i]==1 && a[2][i]==1 && a[3][i]==0) v[4].push_back(i);
if(a[1][i]==1 && a[2][i]==0 && a[3][i]==0) v[5].push_back(i);
if(a[1][i]==0 && a[2][i]==1 && a[3][i]==0) v[6].push_back(i);
if(a[1][i]==0 && a[2][i]==0 && a[3][i]==1) v[7].push_back(i);
}
int ans = 0;
ans += v[1].size();
while(v[2].size() && v[5].size()) ++ans, v[2].pop_back(), v[5].pop_back();
while(v[3].size() && v[6].size()) ++ans, v[3].pop_back(), v[6].pop_back();
while(v[4].size() && v[7].size()) ++ans, v[4].pop_back(), v[7].pop_back();
ans += v[2].size() + v[3].size() + v[4].size();
ans += max(v[5].size(), max(v[6].size(), v[7].size()));
cout<<ans<<endl;
}
}
Wannafly Camp 2020 Day 5A Alternative Accounts的更多相关文章
- Wannafly Camp 2020 Day 3I N门问题 - 概率论,扩展中国剩余定理
有一个猜奖者和一个主持人,一共有 \(n\) 扇门,只有一扇门后面有奖,主持人事先知道哪扇门后有奖,而猜奖者不知道.每一轮,猜奖者选择它认为的有奖概率最大(如果有多个最大,随机选一个)的一扇门,主持人 ...
- Wannafly Camp 2020 Day 3F 社团管理 - 决策单调性dp,整体二分
有 \(n\) 个数构成的序列 \({a_i}\),要将它划分为 \(k\) 段,定义每一段的权值为这段中 \((i,j) \ s.t. \ i<j,\ a_i=a_j\) 的个数,求一种划分方 ...
- Wannafly Camp 2020 Day 3D 求和 - 莫比乌斯反演,整除分块,STL,杜教筛
杜教筛求 \(\phi(n)\), \[ S(n)=n(n+1)/2-\sum_{d=2}^n S(\frac{n}{d}) \] 答案为 \[ \sum_{d=1}^n \phi(d) h(\fra ...
- Wannafly Camp 2020 Day 2B 萨博的方程式 - 数位dp
给定 \(n\) 个数 \(m_i\),求 \((x_1,x_2,...,x_n)\) 的个数,使得 \(x_1 \ xor\ x_2\ xor\ ...\ xor\ x_n = k\),且 \(0 ...
- Wannafly Camp 2020 Day 2D 卡拉巴什的字符串 - 后缀自动机
动态维护任意两个后缀的lcp集合的mex,支持在串末尾追加字符. Solution 考虑在 SAM 上求两个后缀的 LCP 的过程,无非就是找它们在 fail 树上的 LCA,那么 LCP 长度就是这 ...
- Wannafly Camp 2020 Day 1D 生成树 - 矩阵树定理,高斯消元
给出两幅 \(n(\leq 400)\) 个点的无向图 \(G_1 ,G_2\),对于 \(G_1\) 的每一颗生成树,它的权值定义为有多少条边在 \(G_2\) 中出现.求 \(G_1\) 所有生成 ...
- Wannafly Camp 2020 Day 2I 堡堡的宝藏 - 费用流
感谢这道题告诉我KM求的是 完备 最大权匹配 :( #include <bits/stdc++.h> using namespace std; #define reset(x) memse ...
- Wannafly Camp 2020 Day 2J 邦邦的2-SAT模板
#include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; cout<<n& ...
- Wannafly Camp 2020 Day 2F 采蘑菇的克拉莉丝 - 树链剖分
如果暴力维护,每次询问时需要对所有孩子做计算 考虑通过树剖来平衡修改与询问的时间,询问时计算重链和父树,轻链的贡献预先维护好,修改时则需要修改可能影响的轻链贡献,因为某个点到根的路径上轻重交替只有 \ ...
随机推荐
- UWP通过机器学习加载ONNX进行表情识别
首先我们先来说说这个ONNX ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型.它使得不同的人工智能框架(如Pytorch, MXNet)可以采用相同格式存储模型数据并交互. ...
- Android中ProgressBar的使用-通过Handler与Message实现进度条显示
场景 进度条效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改为 ...
- 为spring cloud config实现刷新动态掉的坑
正常搭建配置中心,网上教程多,这里不讨论,只记坑也是为了后来者少花时间在这里,由于是当时研究了好久才写的文章,所以只能提供问题的原因,当然会给出印证的思路,闲话不多说进入正题! 版本spring bo ...
- qt 带箭头的直线 (类似viso)
2020.02.27 本来上传到CSDN,后来想想,我要放弃csdn了.csdn已经跟我分享的精神背道而驰了.想要代码,留邮箱吧. 近来Qt开发时可能遇到这样的需求:两个(或多个)矩形,要用直线将它们 ...
- 使用SMTP协议发送邮件
class Program { static void Main(string[] args) { ) { try { inputmodel obj = new inputmodel(args); S ...
- 《趣谈 Linux 操作系统》学习笔记(二):对 Linux 操作系统的理解
首先,我们知道操作系统是管理和控制计算机硬件与软件资源的计算机程序.这里把操作系统想象为一个软件外包公司,其内核就相当于这家外包公司的老板,那么我们可以把自己的角色切换成这家外包公司的老板,设身处地的 ...
- 网络共享服务(二)之NFS
NFS: Network File System,是一种基于TCP/IP传输的网络文件系统协议,最初由SUN公司开发.通过使用NFS协议,客户机可以像访问本地目录一样访问服务器中的共享资源.但是,NF ...
- javaweb 使用页面模板CSS或者Js修改失效的解决办法(Tomcat缓存问题)
原因是:浏览器的自动缓存机制导致的. 浏览器会自动缓存静态文件以加快访问速度,但是这导致了他不会再从服务器端接收静态文档了,这就导致我在idea里面改的css和js文档,浏览器根本没下载下来. 所以解 ...
- .net mvc中epplus导出excel
帮助类 using OfficeOpenXml; using OfficeOpenXml.Style; using System; using System.Collections.Generic; ...
- HTML+PHP+MySQL 制作最基础的登录页面及验证
第一步 进入mysql操作终端 新建一个数据库web1:create database web1; 然后在这个数据库里面新建一张表test:create table test(user varchar ...