题目链接

https://www.acwing.com/problem/content/description/1740/

思路

经过分析我们发现,对于每一个点来说,我们有至多两个入度以及必定有一个出度,那么这个图最终一定会构成一个基环图,而且是特殊的基环图,对于这个特殊的基环图,我们细分下来其实只有两种,一种是仅由两个点构成的环,并且没有其他入度,那么对于这个环图,我们只需要给其中的一个牛牛踢球就好了,如果是环上还由其他的入度,说明这个环挂了一个树,那么对于这样一个树,我们至少需要这棵树的所有叶子节点的元素,也就是入度为0的点的个数,对于前者我们计算每一个点的权值为1,后者我们计算每一个点的权值为2那么最后将所有满足条件的点的权值加上除二就好了
对于前者的图:

对于后者的图:

代码

#include<bits/stdc++.h>
using namespace std;const int INF = 0x3f3f3f3f;
const int N = 1e2+10;
int du[N],n,a[N],fa[N];int main()
{cin>>n;for(int i = 1;i <= n; ++i)  cin>>a[i];sort(a+1,a+1+n);a[0] = -INF,a[n+1] = INF;for(int i = 1;i <= n; ++i) {if(a[i] - a[i-1] <= a[i+1] - a[i])fa[i] = i-1,du[i-1]++;elsefa[i] = i + 1,du[i+1]++;}int ans = 0;for(int i = 1;i <= n; ++i) {if(!du[i]) ans += 2;else if(fa[fa[i]] == i && du[i] == 1 && du[fa[i]] == 1) ans++;}cout<<ans/2<<endl;return 0;
}

AcWing 1738. 蹄球(特殊基环树)相关推荐

  1. AcWing 1738. 蹄球

    思路:这是一棵特殊点基环树,欢只有2个点构成,我们只需要看有几个入度为0的点,和是不是环上的点 代码: #include <iostream> #include <cstring&g ...

  2. AcWing寒假每日一题 蹄球

    为了准备即将到来的蹄球锦标赛,Farmer John 正在训练他的 N N N 头奶牛(方便起见,编号为 1 - N 1-N 1-N)进行传球. 这些奶牛在牛棚一侧沿直线排列,第 i 号奶牛位于距离牛 ...

  3. 【基环树DP】[NOI2012]迷失游乐园

    题目描述 Description 放假了,小Z觉得呆在家里特别无聊,于是决定一个人去游乐园玩.进入游乐园后,小Z看了看游乐园的地图,发现可以将游乐园抽象成有n个景点.m条道路的无向连通图,且该图中至多 ...

  4. CodeForces - 1454E Number of Simple Paths(基环树+思维)

    题目链接:点击查看 题目大意:给出一棵 n 个点的基环树,现在需要求所有长度大于等于 1 的路径个数 题目分析:对于所有的路径 ( x , y ) 可以分成下列两种情况来考虑: 路径不会经过环上的边: ...

  5. CodeForces - 1252L Road Construction(基环树+有源汇有上下界的最大流)

    题目链接:点击查看 题目大意:给出 n 个节点,再给出 n 个出边,保证所有的边能将 n 个点连通,每条出边可以用 m[ i ] 种材料选择其一建造,然后有 k 个工人,每个工人只可以使用一种材料建造 ...

  6. 基环树一些有趣的事情

    基环树,就是有一个环的树.有向基环树又分内向和外向基环树,当然也有无向的. 最近遇到的基环树真不少.有些题目赤裸裸的就告诉你,"给出一棵基环树(环套树)",但是有的题会有一些标志. ...

  7. Codeforces Round #686 (Div. 3) E. Number of Simple Paths 基环树 + 容斥

    传送门 文章目录 题意: 思路: 题意: 给你一颗基环树,求长度>=1>=1>=1的路径个数. 思路: 先考虑一棵树,他的答案显然是n∗(n−1)2\frac{n*(n-1)}{2} ...

  8. 【NOI2012】迷失游乐园【概率期望】【换根dp】【基环树】

    传送门 题意:给一棵nnn个点的带边权树或基环树,随机选一个点作为起点,每次随机走到一个相邻未走过的位置,直到无路可走.求期望路径长度. n≤105n \leq 10^5n≤105,为基环树时环的大小 ...

  9. 【NOI2013】快餐店【基环树】【树的直径】【set】

    传送门 题意:给一棵nnn个点的基环树,找一个点(可以在边上),求所有节点到这个点的最大值的最小值. n≤1e5n \leq1e5n≤1e5 先考虑一棵普通树的情况 显然是直径长度的一半 因为如果有个 ...

最新文章

  1. JMeter学习-017-java.net.SocketException: Permission denied: connect 解决方案
  2. Oracle的NVL函数
  3. 在存储器的层次结构里,谁最快,谁最贵,谁最大?
  4. jquery之DataTables的使用
  5. HTML输入=“文件”接受属性文件类型(CSV)
  6. 新网银行杯数据科学竞赛复赛第八名总结
  7. java ajax_Ajax Java示例
  8. PDF文件如何修改密码
  9. IIS 配置详解 请求长度限制调整
  10. 工业智能网关BL110应用之六十二: 实现西门子S7-200SMART PLC 接入MQTT Client One云平台
  11. SMOTE算法原理 易用手搓小白版 数据集扩充 python
  12. LinuxI/O多路转接
  13. 身为程序员,与程序员有关的电影你看过几部? 一只猫
  14. VS在新建或者导入项目时出现“不支持此接口(Exception from HRESULT:0x80004002 (E_NONINTERFACE))”的解决办法
  15. 微软解析新Edge浏览器的多进程体系结构
  16. c语言hypot函数,hypot_数值 | Numerics_C_参考手册_非常教程
  17. [增强现实]Unity制作AR增强现实--茶壶(亲测)
  18. 不要迷恋我,虽然我利用Python来耍植物大战僵尸,威力加强版
  19. 学习笔记 - 大数据导论
  20. 成为测试大牛——测试领域的变与不变

热门文章

  1. PCA图像转正C++
  2. xrdp出现雪花屏,闪退怎么办?
  3. np.array(image)的作用
  4. ndk-build官方使用说明
  5. 离线人脸识别C#类库分享 虹软2.0版本
  6. SES 之全局搜索小记
  7. ThinkPHP---案例1登录登出和添加部门
  8. 进程和应用程序生命周期
  9. 一对一关联查询注解@OneToOne的实例详解
  10. 20151024-1025-威海-第5届全国高校软件工程专业教育年会参会总结