CF1368E Ski Accidents
CF1368E Ski Accidents
- 给一个每一个点出度不大于2的有向无环图。
- 你需要删除最多47n\frac{4}{7}n74n的点以及跟它们有关的边,使得最后图中不存在边数大于1的路径。
- 输出任意一组方案。
- n≤2e5n\le2e5n≤2e5
Solution
- 首先47\frac{4}{7}74就很特别,再联系到每一个点的出度最多为2,应该发现这是一个1,2,41,2,41,2,4的满二叉树,我们删去那444个点。
- 这启发我们,如果我们能够将nnn个点分成三个集合A,B,CA,B,CA,B,C,AAA连向BBB,BBB连向CCC,那么由于2∣A∣≥∣B∣,2∣B∣≥∣C∣2|A|\ge|B|,2|B|\ge|C|2∣A∣≥∣B∣,2∣B∣≥∣C∣,C≤47nC\le\frac{4}{7}nC≤74n,只需要删掉CCC就好了。
- 要求是A,BA,BA,B内部没有边。
- 实际上我们一开始就可以想到一个很naive的想法,每隔333个删一个点,看起来会有很多点重复,不好计算,但实际上我们只需要它们可以分成333层,前一个集合向后一个集合连边,这样我们就可以保证集合CCC的点数了。
- 不妨按照拓扑序(也就是111到nnn)做,如果一个点入度有AAA但没有BBB,那么它就是BBB,入度有BBB那么它就是CCC,否则只有CCC或没有入度它就是AAA。
- 这样构造是满足条件的。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define maxn 200005
using namespace std;int T,n,m,i,j,k,bz[maxn],c[3];
int em,e[maxn*2],nx[maxn*2],ls[maxn];int main(){freopen("ceshi.in","r",stdin);scanf("%d",&T);while (T--){scanf("%d%d",&n,&m);em=0,memset(ls,0,sizeof(int)*(n+1));for(i=1;i<=m;i++){int x,y; scanf("%d%d",&x,&y);em++; e[em]=x; nx[em]=ls[y]; ls[y]=em;}int cnt=0;for(int x=1;x<=n;x++){c[0]=c[1]=c[2]=0;for(i=ls[x];i;i=nx[i]) c[bz[e[i]]]++;if (c[1]) bz[x]=2; elseif (c[0]) bz[x]=1; else bz[x]=0;cnt+=bz[x]==2;}printf("%d\n",cnt);for(i=1;i<=n;i++) if (bz[i]==2) printf("%d ",i);printf("\n");}
}
CF1368E Ski Accidents相关推荐
- [CF1368E] Ski Accidents(神仙结论构造)
problem CF1368E Ski Accidents solution 这个 47n\frac 47n74n 的限制,提示这存在一个特定构造方案,由 777 我们联想到 1+2+4=71+2+ ...
- CodeForces - 1368E Ski Accidents(拓扑排序)
题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的有向无环图,规定:每个点的出度一定小于等于 2 ,现在要求删除掉至多 个点,使得任意一条路径的长度都不大于 1 题目分析:主要是这个 ...
- signature=78718ebfda6f8d955fae3e9c9c284f5d,SKI SAFETY BINDING WITH SWIVELLING SOLE PLATE
摘要: A ski safety binding has a sole plate which swivels parallel to the surface of the ski, a pair o ...
- [USACO2009 OPEN] 滑雪课 Ski Lessons
洛谷P2948 看到题目就觉得这是动规但一直没想到如何状态转移--看了别人的题解之后才有一些想法 f[i][j]:前i单位时间能力值为j可以滑的最多次数 lessons[i][j]:结束时间为i,获得 ...
- 【Kattis - triangle 】Sierpiński Circumference(数学,求位数,取对数或Java)
题干: Polish mathematician Wacław Sierpiński (1882-1969) described the 2D geometric figure known as th ...
- bzoj 3388: [Usaco2004 Dec]Cow Ski Area雪场缆车(Tarjan)
3388: [Usaco2004 Dec]Cow Ski Area雪场缆车 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 108 Solved: 4 ...
- No Silver Bullet: Essence and Accidents of Software | 没有银弹:软件开发中的主要问题和次要问题
本文系软件工程中著名的一篇论文:No Silver Bullet: Essence and Accidents of Software 1 @Author:Frederick P. Brooks, J ...
- Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder
文章目录 基于栈式自编码器的道路交通事故深度时空表征-一种时空无监督的事故检测方法 1 论文方法概述 2 STVVs和SDAE 2.1 STVVs(Spatio-Temporal Video Volu ...
- BZOJ1721 Ski Lift 缆车支柱
BZOJ1721 Ski Lift 缆车支柱 Description Farmer Ron in Colorado is building a ski resort for his cows (tho ...
最新文章
- python如何安装各类包_如何在Python中列出所有已安装的包及其版本?
- linux修改文件权限属性,如何修改Linux文件的属性与权限
- python中可变参数和关键字参数_python的可变参数和关键字参数(*args **kw)
- Docker(六):Docker 三剑客之 Docker Swarm
- python写入数据库_Python pymysql写入数据库报错
- JAVA进阶day07JNI(java调用c)A部分
- docker配置 nacos_Nacos - 阿里开源配置中心
- 监控利器--Cacti
- 彩色粉末粉尘喷溅高清素材,让热烈气氛烘托到极致
- 初识Python(二)
- QBoxLayout中setSpacing(int)和addSpacing(int)的区别
- redhat linux手动RPM安装gcc,g++
- 《交互式程序设计 第2版》一3.11 小结
- SVN回滚到指定旧版本操作指南
- 汇编中add和inc的问题
- CSS 如何完美地去除表格的 “双线”
- xshell中数字小键盘不能使用怎么办?
- 本地主机连接阿里云数据库(自建数据库)排雷
- [QT]The inferior stopped because it received a signal from the operating system 自己解决方法
- 【043】光盘库编码
热门文章
- 微视去水印,无水印解析原理分析及实现
- 如何在vue用scss
- 《找你妹2》开发者云中游再声明:热酷涉嫌严重违约发布侵权竞品
- 同相比造句_对比造句_造句大全
- IDEA连接MySQL失败-[08S01] Communications link failure
- SpringBoot SSM vue生产线控制系统
- linux 路由跟着命令,Linux基础命令---tracepath追踪路由
- 信息学奥赛一本通:1038:苹果和虫子
- java梅森素数,C语言求梅森素数代码及解析
- 面具busybox模块_busybox简介及使用