为了准备即将到来的蹄球锦标赛,Farmer John 正在训练他的 N N N 头奶牛(方便起见,编号为 1 … N 1…N 1…N)进行传球。
这些奶牛在牛棚一侧沿直线排列,第 i 号奶牛位于距离牛棚 x i x_i xi​ 的地方。每头奶牛都在不同的位置上。
在训练开始的时候,Farmer John 会将若干个球传给不同的奶牛。

当第 i i i 号奶牛接到球时,无论是从 Farmer John 或是从另一头奶牛传来的,她会将球传给最近的奶牛(如果有多头奶牛与她距离相同,她会将球传给这些奶牛中最左边的那头奶牛。)。

为了使所有奶牛都有机会练习到传球,Farmer John 想要确保每头奶牛都持球至少一次。

帮助他求出为了达到这一目的他开始时至少要传出的球的数量。

假设他在开始的时候能将球传给最适当的一组奶牛。

输入格式
输入的第一行包含 N N N。

第二行包含 N N N 个用空格分隔的整数,其中第 i i i 个整数为 x i x_i xi​。

输出格式
输出 Farmer John 开始的时候最少需要传出的球的数量,使得所有奶牛至少持球一次。

数据范围
1 ≤ N ≤ 100 1≤N≤100 1≤N≤100,
1 ≤ x i ≤ 1000 1≤x_i≤1000 1≤xi​≤1000

输入样例
5
7 1 3 11 4输出样例
2

分析
1.只考虑传递方向,那么每个点最多入度为2, 出度为1(每个点只与相邻两个点有关)
2.只需考虑所有入度为0的点即可,因为必须向这些位置传球才能使得整个系统运转
3.当只有环出现时,只需从一个点传递即可满足要求

在计算两种情况每个点的贡献,第二种情况赋予1/2即可,剩下入度为0的点为1,但实际计算时为了避免精度损失将单个贡献*2最后/2即可

#include<bits/stdc++.h>
using namespace std;const int N = 1100;
int d[N] , p[N] , a[N]; p数组表示当前点的传递给哪个点
int n;
int main()
{cin >> n;for (int i = 1; i <= n; ++ i) cin >> a[i];sort(a + 1 , a + n + 1);a[0] = -1e9 , a[n + 1] = 1e9; 哨兵,方便判断端点for (int i = 1; i <= n; ++ i)if (abs(a[i] - a[i - 1]) <= abs(a[i] - a[i + 1])){p[i] = i - 1;d[i - 1] ++;}else{p[i] = i + 1;d[i + 1] ++;}int res = 0;for (int i = 1; i <= n; ++ i){if (!d[i]) res += 2;else if (p[p[i]] == i && d[i] == 1 && d[p[i]] == 1) res ++; 环}cout << res / 2 << endl;return 0;
}

AcWing寒假每日一题 蹄球相关推荐

  1. AcWing寒假每日一题2058. 笨拙的手指

    AcWing寒假每日一题2058. 笨拙的手指 题目描述 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果 ...

  2. AcWing寒假每日一题

    **此文章持续更新,直至寒假没有每日一题!!!! 习题目录 Week 1: 货仓选址 数字三角形 Week 2 蛇形矩阵 红与黑 回文平方 剪绳子 分巧克力 校门外的树(简单暴力法) 奖学金 十三号星 ...

  3. AcWing寒假每日一题 2058.笨拙的手指

    题目描述:2058. 笨拙的手指 - AcWing题库 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果时 ...

  4. 2022.01.05 Acwing寒假每日一题 拖拉机

    1.题目拖拉机 干了一整天的活,农夫约翰完全忘记了他把拖拉机落在田地中央了. 他的奶牛非常调皮,决定对约翰来场恶作剧. 她们在田地的不同地方放了 N 捆干草,这样一来,约翰想要开走拖拉机就必须先移除一 ...

  5. AcWing - 寒假每日一题2023(DAY 11——DAY 15)

    文章目录 一.AcWing 4656. 技能升级(困难) 1. 实现思路 2. 实现代码 二.AcWing 4454. 未初始化警告(简单) 1. 实现思路 2. 实现代码 三.AcWing 4509 ...

  6. AcWing寒假每日一题2022-第1周

    week 1: 2058.笨拙的手指 2041.干草堆 2060.奶牛选美 2019.拖拉机 2014.岛 2058.笨拙的手指 一.问题描述 奶牛贝茜正在学习如何在不同进制之间转换数字.但是她总是犯 ...

  7. 2022.01.02 Acwing寒假每日一题 笨拙的手指

    1.题目笨拙的手指 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错. 例 ...

  8. 【acwing 寒假每日一题(入门组)】day24数独检查

    题目来源:数独检查 题目描述 数独是一种流行的单人游戏. 目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的所有数字. 每个9x9矩阵在游戏开始时都会有部分数字已经给 ...

  9. AcWing.寒假每日一题

    目录 1.4261孤独的照片 2.3400统计次数 3.4366堆石头 4.奶牛大学 1.4261孤独的照片 Farmer John 最近购入了 NN 头新的奶牛,每头奶牛的品种是更赛牛(Guerns ...

最新文章

  1. putty修改字体配色
  2. 数据结构-算法: 分配排序(基数分配排序法)
  3. 半连接队列 全连接队列??
  4. 局部变量java6_java字节码-几种字符串局部变量用法的区别
  5. wamp2.5 64 mysql_Wamp2.5 64bit,无法修改MySQL datadir位置_MySQL
  6. JavaScript(二)——数据类型、流程控制、Map和Set
  7. mysql 事务 视图 存储过程 触发器
  8. 从三点解读,入行Java从业前景如何?
  9. struts2文件上传中,如何限制上传的文件类型
  10. python量化数据处理小细节2
  11. (转)RabbitMQ学习之主题topic(java)
  12. 青春日志html,关于青春日记模板锦集四篇
  13. 使用cmd和excel完成批量复制所需文件夹和文件
  14. linux下使用LVM合并挂载硬盘以及扩容
  15. r语言中怎样查看函数源代码
  16. 三种编程规则:驼峰命名法、帕斯卡命名法、匈牙利名
  17. linux -- 嵌入式linux下wifi无线网卡驱动
  18. python,unicode转换中文,中文转换unicode
  19. phpini修改时间无效_php配置文件改变为什么没有生效?
  20. 初始圈的选择matlab,基于MATLAB的最优算法案例分析——关于徐州潘安湖风景区游览路线设计...

热门文章

  1. 2023计算机毕业设计SSM最新选题之javaJava防作弊的电子投票系统rgobs
  2. 应聘时必须知道的英文单词!
  3. 用python计算成绩_Python使用splinter自动登录教务系统查询并计算成绩(CUMT新版教务系统)...
  4. 一款超赞极简开源文件共享系统,无需注册可直接下载文件
  5. 奉贤 美食餐饮
  6. Adventure 魔幻历险
  7. mysql deadlock found_MySQLTransactionRollbackException: Deadlock found when trying to get lock
  8. pygame 界面制作编程需要
  9. 基恩士PLC KV8000+XH16EC总线控制,全ST程序实例
  10. 总论点和分论点_反对我的论点对数字隐私无可厚非