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的更多相关文章

  1. Wannafly Camp 2020 Day 3I N门问题 - 概率论,扩展中国剩余定理

    有一个猜奖者和一个主持人,一共有 \(n\) 扇门,只有一扇门后面有奖,主持人事先知道哪扇门后有奖,而猜奖者不知道.每一轮,猜奖者选择它认为的有奖概率最大(如果有多个最大,随机选一个)的一扇门,主持人 ...

  2. Wannafly Camp 2020 Day 3F 社团管理 - 决策单调性dp,整体二分

    有 \(n\) 个数构成的序列 \({a_i}\),要将它划分为 \(k\) 段,定义每一段的权值为这段中 \((i,j) \ s.t. \ i<j,\ a_i=a_j\) 的个数,求一种划分方 ...

  3. 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 ...

  4. 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 ...

  5. Wannafly Camp 2020 Day 2D 卡拉巴什的字符串 - 后缀自动机

    动态维护任意两个后缀的lcp集合的mex,支持在串末尾追加字符. Solution 考虑在 SAM 上求两个后缀的 LCP 的过程,无非就是找它们在 fail 树上的 LCA,那么 LCP 长度就是这 ...

  6. Wannafly Camp 2020 Day 1D 生成树 - 矩阵树定理,高斯消元

    给出两幅 \(n(\leq 400)\) 个点的无向图 \(G_1 ,G_2\),对于 \(G_1\) 的每一颗生成树,它的权值定义为有多少条边在 \(G_2\) 中出现.求 \(G_1\) 所有生成 ...

  7. Wannafly Camp 2020 Day 2I 堡堡的宝藏 - 费用流

    感谢这道题告诉我KM求的是 完备 最大权匹配 :( #include <bits/stdc++.h> using namespace std; #define reset(x) memse ...

  8. Wannafly Camp 2020 Day 2J 邦邦的2-SAT模板

    #include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; cout<<n& ...

  9. Wannafly Camp 2020 Day 2F 采蘑菇的克拉莉丝 - 树链剖分

    如果暴力维护,每次询问时需要对所有孩子做计算 考虑通过树剖来平衡修改与询问的时间,询问时计算重链和父树,轻链的贡献预先维护好,修改时则需要修改可能影响的轻链贡献,因为某个点到根的路径上轻重交替只有 \ ...

随机推荐

  1. android编译/反编译常用工具及项目依赖关系

    项目依赖关系 apktool:依赖smali/baksmali,XML部分 AXMLPrinter2 JEB:dx 工具依赖 AOSP , 反编译dex 依赖 apktool dex2jar:依赖 A ...

  2. navicat连接异常 authentication plugin 'caching_sha2_password' 问题解决

    mysql 8.0 默认使用 caching_sha2_password 身份验证机制 -- 从原来的 mysql_native_password 更改为 caching_sha2_password. ...

  3. Redis实现访问控制频率

    为什么限制访问频率 做服务接口时通常需要用到请求频率限制 Rate limiting,例如限制一个用户1分钟内最多可以范围100次 主要用来保证服务性能和保护数据安全 因为如果不进行限制,服务调用者可 ...

  4. MySQL的JDBC驱动(8.0版本)

    1.引用外部库  mysql-connector-java-8.0.版本的jar 2.jdbc驱动类:com.mysql.jdbc.Driver  改成 com.mysql.cj.jdbc.Drive ...

  5. xshell/secureCRT连接Linux及其常用命令

    一.xshell:在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的 下载安装后连接步骤: 二.secureCRT:在Windows下登录UNIX或Linux服务 ...

  6. Windows通过DOS命令行设置IP地址

    @rem 设置固定IP地址netsh interface ip set address "本地连接" static 192.168.1.200 255.255.255.0 192. ...

  7. swiper滑动失效问题

    最近在写移动端的项目,页面有用的是swiper滑动的. 但是会发现在滑动时,不灵活,就是滑动时隐藏的数据会显示,但是不滑动数据又在初始那,隐藏的数据还是看不到. 于是各种排除问题,终于在pc端+移动端 ...

  8. spring boot中通用应用程序属性

    可以在application.properties文件内部application.yml,文件内部或命令行开关中指定各种属性.本附录提供了常见的Spring Boot属性列表以及对使用它们的基础类的引 ...

  9. PAT (Basic Level) Practice (中文)1076 Wifi密码 (15 分)

    下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1:B-2:C-3:D-4:请同学们自己作答,每两日一 ...

  10. 1.Docker Compose

    一.Docker Compose 简介 概述 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.从功能上看,跟 OpenStack 中的 Heat 十 ...