2020牛客暑期多校训练营(第八场)Interesting Computer Game
题意
- 什么都不做
- 如果a[i]以前没选过,那么可以选择a[i]
- 如果b[i]以前没选过,那么可以选择b[i]
题解
1
6
1 2
2 3
3 4
1 3
4 5
5 6
代码
1 #include<bits/stdc++.h>
2 using namespace std;
3
4 const int maxn=100100;
5 unordered_map<int,int> par,p,x,y,q,vis;
6
7 int Find(int x){
8 if(x!=par[x])
9 par[x]=Find(par[x]);
10 return par[x];
11 }
12
13 void unite(int a,int b)
14 {
15 int fa=Find(a);
16 int fb=Find(b);
17 if(fa!=fb)
18 par[fa]=fb;
19 }
20
21 int a[maxn],b[maxn];
22 int c[maxn];
23
24 int main()
25 {
26 ios::sync_with_stdio(false);
27 cin.tie(0);
28 cout.tie(0);
29 int t;
30 cin>>t;
31 int k=0;
32 while(t--){
33 memset(c,0,sizeof(c));
34 par.clear();
35 p.clear();
36 x.clear();
37 y.clear();
38 q.clear();
39 vis.clear();
40 cout<<"Case #"<<++k<<": ";
41 int n;
42 cin>>n;
43 int pos=0;
44 int ans=0;
45 for(int i=0;i<n;i++){
46 cin>>a[i]>>b[i];
47 par[a[i]]=a[i];
48 par[b[i]]=b[i];
49 }
50 int kk=0;
51 for(int i=0;i<n;i++){
52 if(Find(a[i])==Find(b[i])) c[kk++]=Find(a[i]);
53 else unite(a[i],b[i]);
54 }
55 for(int i=0;i<kk;i++){
56 p[Find(c[i])]=1;
57 }
58 for(int i=0;i<n;i++){
59 int xx=Find(a[i]);
60 int yy=Find(b[i]);
61 if(!x[xx]) x[xx]=++pos,q[pos]=xx;
62 if(!x[yy]) x[yy]=++pos,q[pos]=yy;
63 }
64 for(int i=0;i<n;i++){
65 if(!vis[a[i]]) y[x[Find(a[i])]]++;
66 vis[a[i]]=1;
67 if(!vis[b[i]]) y[x[Find(b[i])]]++;
68 vis[b[i]]=1;
69 }
70 for(int i=1;i<=pos;i++){
71 if(!p[q[i]]) ans--;
72 ans+=y[i];
73 }
74 cout<<ans<<endl;
75 }
76 return 0;
77 }
2020牛客暑期多校训练营(第八场)Interesting Computer Game的更多相关文章
- 2020牛客暑期多校训练营(第一场)H Minimum-cost Flow
Minimum-cost Flow 题目:给n个点,m条边.接下来m行包含(a,b,c),即a,b之间有单位流量代价为c的边.接下来有q个问题,每个问题给定(x,y),即假设每条边的容量为x/y时,从 ...
- 2020牛客暑期多校训练营(第二场) Boundary
传送门:Boundary 题意:给你n个点的坐标,问最多有多少个点可以在同一个圆上,(0,0)必须在这个圆上. 题解:三个点确定一个圆,所以暴力枚举两个点和(0,0)组成的圆,如果三个点不共线的话, ...
- 2020牛客暑期多校训练营(第一场)Easy Integration
传送门:J. Easy Integration 题意:给你n,求这个积分,最后的结果分子是记为p,分母记为q. 求(p*q-1)mod 998244353. 题解:比赛完看到巨巨说这是贝塔函数,我一搜 ...
- 2020牛客暑期多校训练营 (第二场) All with Pairs
传送门:All with Pairs 题意:给你n个字符串,求出,f(si,sj)的意思是字符串 si 的前缀和字符串 sj 后缀最长相等部分. 题解:先对所有的字符串后缀hash,用map记录每个h ...
- 2020牛客暑期多校训练营(第二场)Fake Maxpooling
传送门:Fake Maxpooling 题意:给出矩阵的行数n和列数m,矩阵 Aij = lcm( i , j ) ,求每个大小为k*k的子矩阵的最大值的和. 题解:如果暴力求解肯定会t,所以要智取 ...
- 2020牛客暑期多校训练营(第二场) F.Fake Maxpooling (单调队列)
题意:有一个\(n\)x\(m\)的矩阵,\(A_{i,j}=lcm(i,j)\),对于每个\(k\)x\(k\)的子矩阵,其最大元素贡献给答案,求答案的最大值. 题解:矩阵构成我们直接\(i*j/g ...
- 2019牛客暑期多校训练营(第九场)A:Power of Fibonacci(斐波拉契幂次和)
题意:求Σfi^m%p. zoj上p是1e9+7,牛客是1e9: 对于这两个,分别有不同的做法. 前者利用公式,公式里面有sqrt(5),我们只需要二次剩余求即可. 后者mod=1e9,5才 ...
- 2019牛客暑期多校训练营(第一场)A题【单调栈】(补题)
链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 题目描述 Two arrays u and v each with m distinct elem ...
- 2019牛客暑期多校训练营(第一场) B Integration (数学)
链接:https://ac.nowcoder.com/acm/contest/881/B 来源:牛客网 Integration 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 5242 ...
- 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)
链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...
随机推荐
- Appium 介绍及环境安装
Appium是一个可用于测试iOS. Android操作系统和Windows桌面平台原生应用,移动网页应用和混合应用的自动化测试框架. 原生应用(Native App):用 android.iOS或者 ...
- windows环境搭建
GO语言环境配置: 安装GOlang,添加到环境变量path 默认会创建环境变量GOPATH,其中存放代码和编译后的工程文件等,用户可以根据个人需要,在别的路径下创建gopath,并添加到环境变量中. ...
- 一网打尽,一文讲通虚拟机VirtualBox及Linux使用
本文将从虚拟机的选择.安装.Linux系统安装.SSH客户端工具使用四个方面来详细介绍Linux系统在虚拟机下的安装及使用方法,为你在虚拟机下正常使用Linux保驾护航. 1.虚拟机的选择 在讲虚拟机 ...
- 一文读懂 SuperEdge 边缘容器架构与原理
前言 superedge是腾讯推出的Kubernetes-native边缘计算管理框架.相比openyurt以及kubeedge,superedge除了具备Kubernetes零侵入以及边缘自治特性, ...
- 【Java基础】IO 流
IO 流 File 类 java.io.File 类是文件和文件目录路径的抽象表示形式,与平台无关. File 能新建.删除.重命名文件和目录,但 File 不能访问文件内容本身. 如果需要访问文件内 ...
- Spark学习进度11-Spark Streaming&Structured Streaming
Spark Streaming Spark Streaming 介绍 批量计算 流计算 Spark Streaming 入门 Netcat 的使用 项目实例 目标:使用 Spark Streaming ...
- centos&linux
who am i 查看是哪一个用户 init 0关机 ifconfig用于配置网络或显示当前网络接口的状态 eth0是网卡的名字 第一行:flags后面的up指的是网卡处于运行状态,running连接 ...
- IPC图像处理项目流程图
网络摄像机IPC图像处理项目流程图:
- 基于Python的接口自动化-unittest测试框架和ddt数据驱动
引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用 ...
- 华为路由配置IPSec
用该方法配置后用抓包工具抓取的就看不到两个通讯点的IP,而显示的是加密点的IP. 原文:https://www.cnblogs.com/yangyang1988/p/11559819.html