CF1368E Ski Accidents

  • 给一个每一个点出度不大于2的有向无环图。
  • 你需要删除最多47n\frac{4}{7}n74​n的点以及跟它们有关的边,使得最后图中不存在边数大于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≤74​n,只需要删掉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相关推荐

  1. [CF1368E] Ski Accidents(神仙结论构造)

    problem CF1368E Ski Accidents solution 这个 47n\frac 47n74​n 的限制,提示这存在一个特定构造方案,由 777 我们联想到 1+2+4=71+2+ ...

  2. CodeForces - 1368E Ski Accidents(拓扑排序)

    题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的有向无环图,规定:每个点的出度一定小于等于 2 ,现在要求删除掉至多  个点,使得任意一条路径的长度都不大于 1 题目分析:主要是这个 ...

  3. 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 ...

  4. [USACO2009 OPEN] 滑雪课 Ski Lessons

    洛谷P2948 看到题目就觉得这是动规但一直没想到如何状态转移--看了别人的题解之后才有一些想法 f[i][j]:前i单位时间能力值为j可以滑的最多次数 lessons[i][j]:结束时间为i,获得 ...

  5. 【Kattis - triangle 】Sierpiński Circumference(数学,求位数,取对数或Java)

    题干: Polish mathematician Wacław Sierpiński (1882-1969) described the 2D geometric figure known as th ...

  6. 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 ...

  7. No Silver Bullet: Essence and Accidents of Software | 没有银弹:软件开发中的主要问题和次要问题

    本文系软件工程中著名的一篇论文:No Silver Bullet: Essence and Accidents of Software 1 @Author:Frederick P. Brooks, J ...

  8. Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder

    文章目录 基于栈式自编码器的道路交通事故深度时空表征-一种时空无监督的事故检测方法 1 论文方法概述 2 STVVs和SDAE 2.1 STVVs(Spatio-Temporal Video Volu ...

  9. BZOJ1721 Ski Lift 缆车支柱

    BZOJ1721 Ski Lift 缆车支柱 Description Farmer Ron in Colorado is building a ski resort for his cows (tho ...

最新文章

  1. python如何安装各类包_如何在Python中列出所有已安装的包及其版本?
  2. linux修改文件权限属性,如何修改Linux文件的属性与权限
  3. python中可变参数和关键字参数_python的可变参数和关键字参数(*args **kw)
  4. Docker(六):Docker 三剑客之 Docker Swarm
  5. python写入数据库_Python pymysql写入数据库报错
  6. JAVA进阶day07JNI(java调用c)A部分
  7. docker配置 nacos_Nacos - 阿里开源配置中心
  8. 监控利器--Cacti
  9. 彩色粉末粉尘喷溅高清素材,让热烈气氛烘托到极致
  10. 初识Python(二)
  11. QBoxLayout中setSpacing(int)和addSpacing(int)的区别
  12. redhat linux手动RPM安装gcc,g++
  13. 《交互式程序设计 第2版》一3.11 小结
  14. SVN回滚到指定旧版本操作指南
  15. 汇编中add和inc的问题
  16. CSS 如何完美地去除表格的 “双线”
  17. xshell中数字小键盘不能使用怎么办?
  18. 本地主机连接阿里云数据库(自建数据库)排雷
  19. [QT]The inferior stopped because it received a signal from the operating system 自己解决方法
  20. 【043】光盘库编码

热门文章

  1. 微视去水印,无水印解析原理分析及实现
  2. 如何在vue用scss
  3. 《找你妹2》开发者云中游再声明:热酷涉嫌严重违约发布侵权竞品
  4. 同相比造句_对比造句_造句大全
  5. IDEA连接MySQL失败-[08S01] Communications link failure
  6. SpringBoot SSM vue生产线控制系统
  7. linux 路由跟着命令,Linux基础命令---tracepath追踪路由
  8. 信息学奥赛一本通:1038:苹果和虫子
  9. java梅森素数,C语言求梅森素数代码及解析
  10. 面具busybox模块_busybox简介及使用