AcWing寒假每日一题 蹄球
为了准备即将到来的蹄球锦标赛,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寒假每日一题 蹄球相关推荐
- AcWing寒假每日一题2058. 笨拙的手指
AcWing寒假每日一题2058. 笨拙的手指 题目描述 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果 ...
- AcWing寒假每日一题
**此文章持续更新,直至寒假没有每日一题!!!! 习题目录 Week 1: 货仓选址 数字三角形 Week 2 蛇形矩阵 红与黑 回文平方 剪绳子 分巧克力 校门外的树(简单暴力法) 奖学金 十三号星 ...
- AcWing寒假每日一题 2058.笨拙的手指
题目描述:2058. 笨拙的手指 - AcWing题库 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果时 ...
- 2022.01.05 Acwing寒假每日一题 拖拉机
1.题目拖拉机 干了一整天的活,农夫约翰完全忘记了他把拖拉机落在田地中央了. 他的奶牛非常调皮,决定对约翰来场恶作剧. 她们在田地的不同地方放了 N 捆干草,这样一来,约翰想要开走拖拉机就必须先移除一 ...
- AcWing - 寒假每日一题2023(DAY 11——DAY 15)
文章目录 一.AcWing 4656. 技能升级(困难) 1. 实现思路 2. 实现代码 二.AcWing 4454. 未初始化警告(简单) 1. 实现思路 2. 实现代码 三.AcWing 4509 ...
- AcWing寒假每日一题2022-第1周
week 1: 2058.笨拙的手指 2041.干草堆 2060.奶牛选美 2019.拖拉机 2014.岛 2058.笨拙的手指 一.问题描述 奶牛贝茜正在学习如何在不同进制之间转换数字.但是她总是犯 ...
- 2022.01.02 Acwing寒假每日一题 笨拙的手指
1.题目笨拙的手指 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错. 例 ...
- 【acwing 寒假每日一题(入门组)】day24数独检查
题目来源:数独检查 题目描述 数独是一种流行的单人游戏. 目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的所有数字. 每个9x9矩阵在游戏开始时都会有部分数字已经给 ...
- AcWing.寒假每日一题
目录 1.4261孤独的照片 2.3400统计次数 3.4366堆石头 4.奶牛大学 1.4261孤独的照片 Farmer John 最近购入了 NN 头新的奶牛,每头奶牛的品种是更赛牛(Guerns ...
最新文章
- putty修改字体配色
- 数据结构-算法: 分配排序(基数分配排序法)
- 半连接队列 全连接队列??
- 局部变量java6_java字节码-几种字符串局部变量用法的区别
- wamp2.5 64 mysql_Wamp2.5 64bit,无法修改MySQL datadir位置_MySQL
- JavaScript(二)——数据类型、流程控制、Map和Set
- mysql 事务 视图 存储过程 触发器
- 从三点解读,入行Java从业前景如何?
- struts2文件上传中,如何限制上传的文件类型
- python量化数据处理小细节2
- (转)RabbitMQ学习之主题topic(java)
- 青春日志html,关于青春日记模板锦集四篇
- 使用cmd和excel完成批量复制所需文件夹和文件
- linux下使用LVM合并挂载硬盘以及扩容
- r语言中怎样查看函数源代码
- 三种编程规则:驼峰命名法、帕斯卡命名法、匈牙利名
- linux -- 嵌入式linux下wifi无线网卡驱动
- python,unicode转换中文,中文转换unicode
- phpini修改时间无效_php配置文件改变为什么没有生效?
- 初始圈的选择matlab,基于MATLAB的最优算法案例分析——关于徐州潘安湖风景区游览路线设计...
热门文章
- 2023计算机毕业设计SSM最新选题之javaJava防作弊的电子投票系统rgobs
- 应聘时必须知道的英文单词!
- 用python计算成绩_Python使用splinter自动登录教务系统查询并计算成绩(CUMT新版教务系统)...
- 一款超赞极简开源文件共享系统,无需注册可直接下载文件
- 奉贤 美食餐饮
- Adventure 魔幻历险
- mysql deadlock found_MySQLTransactionRollbackException: Deadlock found when trying to get lock
- pygame 界面制作编程需要
- 基恩士PLC KV8000+XH16EC总线控制,全ST程序实例
- 总论点和分论点_反对我的论点对数字隐私无可厚非