【[POI2012]TOU-Tour de Byteotia】
【[POI2012]TOU-Tour de Byteotia】
洛谷P3535
https://www.luogu.org/problemnew/show/P3535
JDOJ 2193旅游景点(同类题目)
https://neooj.com/oldoj/problem.php?id=2193
知识点:并查集判环
ps:首先声明一下,这题我只得了20分,但是检查了好多遍代码发现没有问题,看了大佬的题解发现他也得了20分,那就是洛谷数据点有问题了(数据范围啥的都没给还想过?)
所以大家不要纠结分数,把这个东西弄好了才是最重要的。
并查集有连通性,其很重要的一个用处就是判环,这个判环用法不仅在一些并查集题中很常见,并且在kruskal算法做MST的时候也是必会用法。
其原理很简单,如果一个点的父亲节点和另一个点的父亲节点是相同的,那么就可以判定出现了一个环。
然后针对于本题,正解思路如下:
不难想到,如果两个点都>k的话,这个边就没有可能被删除。 所以我们只需要先把x,y都>k的边放进并查集,然后再枚举其他<=k的边,如果发现x,y根节点相同,那就累加ans,如果没有的话就不需要删除,加到并查集里。
TALK LESS , LET ME SHOW YOU
#include<cstdio>
#define N 100010
using namespace std;
int fa[N],x[N<<],y[N<<];
int n,m,k,ans;
int find(int x)
{
if(fa[x]==x)return x;
return fa[x]=find(fa[x]);
}
void unionn(int x,int y)
{
int fx=find(x);
int fy=find(y);
if(fx!=fy)
fa[fx]=fy;
}
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=n;i++)
fa[i]=i;
for(int i=;i<=m;i++)
{
scanf("%d%d",&x[i],&y[i]);
if(x[i]>k && y[i]>k)
unionn(x[i],y[i]);
}
for(int i=;i<=m;i++)
{
if(x[i]<=k || y[i]<=k)
{
if(find(x[i])==find(y[i]))
ans++;
else
unionn(x[i],y[i]);
}
}
printf("%d",ans);
return ;
}
【[POI2012]TOU-Tour de Byteotia】的更多相关文章
- 【BZOJ3060】[Poi2012]Tour de Byteotia 并查集
[BZOJ3060][Poi2012]Tour de Byteotia Description 给定一个n个点m条边的无向图,问最少删掉多少条边能使得编号小于等于k的点都不在环上. Input ...
- Bzoj3060 [Poi2012]Tour de Byteotia
3060: [Poi2012]Tour de Byteotia Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 251 Solved: 161 Des ...
- bzoj 3060[Poi2012]Tour de Byteotia 贪心+生成树
Description 给定一个n个点m条边的无向图,问最少删掉多少条边能使得编号小于等于k的点都不在环上. Analysis 包含关键点的环中 包含从关键点连出的两条边 考虑我们删边删哪些边更优 根 ...
- BZOJ 3060: [Poi2012]Tour de Byteotia 并查集
前 $k$ 个节点形成的结构必定是森林,而 $[k+1,r]$ 之间肯定是都连上,而剩下的一个在 $[1,k],$一个在 $[k+1,r]$ 的节点就能连多少连多少即可. Code: #include ...
- [bzoj3060][Poi2012]Tour de Byteotia_并查集
[Poi2012]Tour de Byteotia 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3060 题解: 这类题有一个套路,就是 ...
- [POI2012]Tour de Bajtocja
[POI2012]Tour de Bajtocja 题目大意: 给定一个\(n(n\le10^6)\)个点\(m(m\le2\times10^6)\)条边的无向图,问最少删掉多少条边能使得编号小于等于 ...
- 【Lucene3.6.2入门系列】第03节_简述Lucene中常见的搜索功能
package com.jadyer.lucene; import java.io.File; import java.io.IOException; import java.text.SimpleD ...
- 【Xamarin开发 Android 系列 4】 Android 基础知识
原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...
- HTML5实现全屏API【进入和退出全屏】
现在主流浏览器基本上实现了全屏效果,但是不同浏览器实现不一样: [进入和退出全屏] // Webkit (works in Safari5.1 and Chrome 15)element.webkit ...
随机推荐
- 7.jenkins 按标签发布
jenkins 如果要按标签发布,需要安装下, Git Parameter Plug-In 的 插件. 之前我们的jar包项目. 我们运行的时候是以下内容. 现在我们对这个jar进行小范围修改. ...
- redhat 安装 oracle中途遇到的问题(1)
(1)安装到68%时出现弹出框 Error in invoking target 'install' of makefile '/home/oracle/app/oracle/product/11.2 ...
- 解决问题:Red Hat Enterprise Linux 7 64 位 虚拟机安装后无法启动图形化
原因: 1.系统在创建时,没有安装图形化 2.系统在安装后,有降低内存的操作,内存过低无法启动桌面,以及其他 就原因一进行图形化安装: 1.VMware挂载Red Hat Enterprise Lin ...
- 第05组 Alpha冲刺(4/4)
第05组 Alpha冲刺(4/4) 队名:天码行空 组长博客连接 作业博客连接 团队燃尽图(共享): GitHub当日代码/文档签入记录展示(共享): 组员情况: 组员1:卢欢(组长) 过去两天完成了 ...
- PHP面试题大全(值得收藏)
PHP进阶.面试:文档.视频资源点击免费获取 一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操 ...
- 最热门的 10 个 Java 微服务框架
1.Spring Boot Java 构建 Spring 应用程序已经有很长一段时间了,Spring Boot 是 Spring 的一个特定版本,它通过对配置细节的处理,使微服务构建更加简便.创建 S ...
- 解决ie下vue列表数据不能即时刷新的问题
项目上要兼容IE浏览器(客户要求),发现之前在谷歌浏览器下,操作(增删改查)列表后列表能即时刷新(双向绑定),IE下却不行. 自己调试一下发现,在IE11下,如果GET请求请求相同的URL,默认会使用 ...
- MySQL for OPS 09:MHA + Atlas 实现读写分离高可用
写在前面的话 前面做了 MHA 高可用,但是存在这样一个问题,我们花了 4 台机器,但是最终被利用起来的也就一台,主库.这样硬件利用率才 25%,这意味着除非发生故障,不然其他几台机器都是摆设.明显的 ...
- git遇到的错误和解决方法(长期更新)
1:场景:将两个git合并成一个git url,由于项目超过100M,所以出现错误,以下是解决方案:
- MySQL学习——操作表里的数据
MySQL学习——操作表里的数据 摘要:本文主要学习了使用DML语句操作表里数据的方法. 插入数据 语法 通过传入数据插入: insert into 表名 [(列名1, …, 列名n)] values ...