问题等价于每个三角形里至少选择两个点。

考虑拓扑,每次取出度数为$2$的点$x$,代表一个只与最多一个三角形相邻的三角形$(x,y,z)$。

如果$x$已选,那么$(x,y)$以及$(x,z)$都已经被覆盖,无需再选其它点。

否则因为至少要选两个点,选$y$和$z$一定最优。

时间复杂度$O(n)$。

#include<cstdio>
const int N=100010;
int n,i,x,y,z,d[N],g[N],v[N<<2],nxt[N<<2],ed,vis[N],h,t,q[N],ans,f[N];
inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';}
inline void add(int x,int y){d[x]++;v[++ed]=y;nxt[ed]=g[x];g[x]=ed;}
int main(){read(n);for(i=1;i<=n+n-3;i++)read(x),read(y),add(x,y),add(y,x);for(h=i=1;i<=n;i++)if(d[i]==2)q[++t]=i;while(h<=t){x=q[h++];if(d[x]!=2)continue;vis[x]=1,y=0;for(i=g[x];i;i=nxt[i])if(!vis[v[i]]){if(y)z=v[i];else y=v[i];if((--d[v[i]])==2)q[++t]=v[i];}if(!f[x])f[y]=f[z]=1;}for(i=1;i<=n;i++)ans+=f[i];return printf("%d",ans),0;
}

  

转载于:https://www.cnblogs.com/clrs97/p/8203664.html

BZOJ2689 : 堡垒相关推荐

  1. 堡垒机高危命令正则表达式

    堡垒机可以设置高危命令阻断,防止操作人员误操作造成删库跑路.但是什么是高危命令,需要管理员通过配置正则表达式,进行命令匹配. 今天2021年8月6日先匹配最常见的删库跑路命令 rm -rf / ,以下 ...

  2. 堡垒机jumpserver集群部署

    本文参考老广二次开发后的堡垒机部署方案,在此基础上进行集群部署,提高其可靠性.尽管国外已经有类似的功能的堡垒机的发布,但是还是要感谢老广在百忙之中开发出更加实用的堡垒机. 本文内容虽然亲测,但内容难免 ...

  3. 企业IT运维的“安全终结者”-堡垒机指南

    为什么说堡垒机是企业IT运维的"安全终结者"? 作为内网安全的"终结者",堡垒机究竟是个什么模样.所谓"堡垒主机"(简称"堡垒机& ...

  4. 「系统架构」什么是堡垒机?为什么需要堡垒机?

    来源:https://www.toutiao.com/i6881462700229329421 什么是堡垒机 堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而 ...

  5. python运维实战--跨堡垒机连接二级服务器上传文件

    python运维实战--跨堡垒机连接二级服务器上传文件 paramiko的有关概念和操作 Welcome to Paramiko! - Paramiko documentation 这个python脚 ...

  6. 更安全的堡垒机登录方法

    Hi,all 目前现状: 每个同事的私钥和公钥都保存在bastion服务器,bastion如果被攻破,bastion后端的服务器安全就荡然无存了.基于这种考虑,现在把公钥和私钥保存在自己的本地,bas ...

  7. 基于python的堡垒机

    一 堡垒机的架构 堡垒机的核心架构通常如下图所示: 二.堡垒机的一般执行流程 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码) 用户登陆堡垒机,输入堡垒机用户名密码,显示当前用户 ...

  8. iTerm2配置自动通过堡垒机登录服务器

    为了保障网络和数据安全,越来越多公司使用堡垒机.iTerm作为一个好用的终端利器,要实现自动通过堡垒机登录服务器的方式有多种.下面我就来介绍一种通过expect脚本的方式完成配置. 第一步,进入/us ...

  9. 关于开源堡垒机Jumpserver二次开发

    针对市场上商业堡垒机动辄七八十万的投入,一般屌丝公司都是伤不起,只能砸机兴叹,开源堡垒机自然是一个方案.是拿来即用吗,NO,那是作死,不说安全.性能.并发,高可用,光维护资产.用户账号密码.授权,就可 ...

最新文章

  1. Linux环境kafka安装
  2. MaximumGap的思想
  3. TCP和UDP可以同时监听相同的端口
  4. ActiveMQ集群
  5. [导入]浅析.Net下的AppDomain编程
  6. adf开发_如何在ADF中将参数传递给ActionListener
  7. SpringBoot整合阿里云OSS上传文件
  8. Java中线程的创建有两种方式
  9. java代码sudo命令_讓Java程序運行sudo命令
  10. 将时间戳转为中国标准时间
  11. 最新版Mysql安装步骤
  12. Matlab textscan
  13. Qualcomm MPM introduction
  14. 基于hyperleger fabric区块链的校园化妆品交易平台搭建
  15. win easypanel安装php,windows下kangle虚拟主机-kangleeasypanel安装图文教程以及心得
  16. C#编写中英文虚拟键盘
  17. ZigBee组网流程
  18. 白盒测试概述及其方法简介
  19. 建筑安全检查标准怎么计算机,建筑施工安全检查标准评分 怎么算
  20. 什么是jsp,它有什么用+jsp的本质是什么

热门文章

  1. centos7下安装mysql5.6_CentOS7安装后MySQL5.6如何配置MySQL5.6呢?
  2. linux java.policy_Linux部署Java环境
  3. IDEA新项目代码上传到gitlab远程仓库
  4. java 动态加载jni_JNI静态注册与动态注册详解
  5. HDU——1134 Game of Connections
  6. 第一个关于selenium项目
  7. mount error 12 = Cannot allocate memory
  8. 7-21-第三篇 validation相关操作
  9. Java线程:新特征-线程池
  10. 移植性问题のLPTSTR、LPCSTR、LPCTSTR、LPSTR之间的转换 转