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. idea创建基于maven的web项目

    1.点击create new project,选择maven,点击next 2.输入项目信息,点击finish 3.进入项目后,点击菜单File->Project Structure开始配置项目 ...

  2. OpenLayers 6 学习笔记

    这个是真的学习笔记!不是教程 转载请声明:https://www.cnblogs.com/onsummer/p/12159366.html 基于openlayers 6.x api不太好查,就基于腾讯 ...

  3. React Native运行出现Could not find "iPhone X" simulator

    打开项目文件夹下 node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js 查找 if (!version.startsW ...

  4. python+selenium自动化测试,浏览器最大化报错解决方法

    此处以谷歌浏览器为例 [问题1]缺少chrome驱动,webdriver调用谷歌浏览器的时候就报错了,如下图: [原因分析]缺少谷歌驱动程序 [解决办法] 1.查看本地安装chrome浏览器版本 2. ...

  5. Git 工作流程和Git分支管理策略

    git-flow 阮一峰大佬写的文章真不错 git-flow, github-flow, gitlab-flow 阮一峰大佬写的文章真不错

  6. CentOS7安装MySQL报错,解决Failed to start mysqld.service: Unit not found

    当输入命令 ~]# systemctl start mysql.service 要启动MySQL数据库是却是这样的提示 Failed to start mysqld.service: Unit not ...

  7. C语言再学习part1-宏观认识C语言

    天下莫柔弱于水,而攻坚强者莫之能胜,以其无以易之也.弱之胜强,柔之胜刚,天下莫不知行,莫能行. —老子 我近来每天都在坚持读书,所以我一直沉浸于古人的智慧中无法自拔.所以如果我这篇博文被你有幸看到,那 ...

  8. Linux中“没有可用的软件包XX,但是它被其他软件包引用”的解决方法

    踩坑经历 今天刚在虚拟机上安装好了ubuntu系统,在执行sudo apt install net-tools 命令时报错"没有可用的软件包net-tools,但是它被其他软件包引用&quo ...

  9. Uva1363(余数性质/减少枚举量)

    题意: 输入正整数n和k(范围均为1e9),求∑(k mod i),i从1~n 解法: 首先这道题直接暴力亲测会超时. 之后我们写几组数据之后可以发现当k/i的商相同的时候他们的余数成一个等差数列,而 ...

  10. fake_useragent-Html-请求头

    fake_useragent HTML请求头 from fake_useragent import UserAgent ua = UserAgent() # 得到ua对象 print(ua.ie) # ...