蓝桥月赛编程题:元宵节触摸灯笼大赛
创作时间:
作者:
@小白创作中心
蓝桥月赛编程题:元宵节触摸灯笼大赛
引用
CSDN
1.
https://blog.csdn.net/zqystca/article/details/145807201
元宵节到了,小蓝决定参加村里举办的“元宵节触摸灯笼大赛”。比赛规则是这样的:村里有 M 个灯笼,排成一排,编号从 1 到 M。每个灯笼上都挂着一个谜语,小蓝需要按顺序进行猜谜语。比赛共有 N 个谜语,第 i 个谜语对应一个区间 [Li,Ri],表示小蓝可以选择触摸这个区间内的任意一个灯笼来猜这个谜语。小蓝的手一开始放在第 1 个灯笼上(因为这是她的幸运数字)。为了猜谜语,她需要移动手去触摸灯笼。每次移动手,她都会感到“疲劳值”增加,疲劳值的计算方式是:如果她之前的手的位置是 y,现在要移动到位置 x,那么这次移动的疲劳值就是 |y−x|。小蓝的目标是猜完所有谜语,同时尽量减少总疲劳值。她不想让自己的手太累,因为猜完谜语后还要去吃汤圆呢!小蓝想知道,猜完所有谜语后,她的最小总疲劳值是多少,请你帮他计算出答案。
输入格式
第一行包含两个整数 N,M(1≤N≤105,1≤M≤109),分别表示谜语的数量和灯笼的数量。
接下来 N 行,每行包含两个整数 Li,Ri(1≤Li≤Ri≤M),表示第 i 个谜语对应的区间。
输出格式
输出一个整数,表示小蓝猜完所有谜语所需的最小总疲劳值。
样例输入
3 5
1 3
2 4
3 5
样例输出
2
说明
- 初始位置:1。
- 猜第一个谜语:移动到 2,疲劳值为 |1−2|=1。
- 猜第二个谜语:保持在 2,疲劳值为 |2−2|=0。
- 猜第三个谜语:移动到 3,疲劳值为 |2−3|=1。
- 总疲劳值为 1+0+1=2。
思路:
贪心思维,想要保证疲劳值最小,也就是移动的距离要最小。例如1 3 5,肯定要到3的位置,但是有可能会出现一种情况,当到达3位置时候,为3 1 4,如果那样写就会往后走走到1,这样是耗体力的且无用的。所以我们要比较当前位置和当前给出的最小范围,取得较大值,这就是应该走到的点。或者 3 1 2 进一步的这样要走到2。
代码实现
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
const ll L = 1e5+10;
struct Node{
ll l,r;
};
ll N,M;
Node dt[L];
int main(void)
{
cin >> N >> M;
for(ll i = 1 ; i <= N ; i++)
{
cin >> dt[i].l >> dt[i].r;
}
ll cur_pos = 1;
ll sum = 0;
for(ll i = 1 ; i <= N ; i++)
{
int new_pos = min(max(cur_pos,dt[i].l),dt[i].r);
sum += abs(new_pos - cur_pos);
cur_pos = new_pos;
}
cout << sum;
return 0;
}
热门推荐
《易经》数字手机:古代智慧与现代科技的完美融合
CAD在室内装修设计中的应用与前景
婚礼详细流程:从筹备到当天的全方位指南
关联企业破产重整:法律挑战与创新实践策略
猫咪的饮食秘籍:从食材到喂养的全方位指南
越南阮朝模仿清初制度推行蓄发易服,出现穿清朝衣留明朝发的奇观
云南省博物馆藏明代沐氏家族的珍贵遗物
创新引入“第三方检测+预估”,推动纠纷高效化解
楼上漏水怎么维权?法官来教你→
糖尿病患者小心酮症酸中毒!注意这7个症状,严重时威胁生命!
深度解析:AI在肺癌早期诊断与治疗中的应用与效能分析报告
手柄科普+选购指南
数字人民币前景如何?数字人民币前景预测
揭秘甲状腺肿大:原因、诊断与个性化治疗
预算2万元以内,三款热门摩托车推荐
信号灯团体标准对交通疏导的优化作用
数据 | 从暴增回归常态!1月新能源客车:宇通/苏金居冠亚,黑马冲进前三
木刻版画艺术时代流变及美育价值研究
冰城公安:“圈层查控”筑牢护城河安全防线
乳糖不耐受者能喝蛋白粉吗
深入解析Apache Hadoop YARN:工作原理与核心组件
用脚踹前男友脸犯法吗?深入了解踹人脸部的法律责任与风险
商业地产中的租售比:定义、计算与应用
商业地产运营必懂:租售比的深度解析与应用指南
乡村是充满希望的田野 年轻人新时代到农村大有可为
【LIN总线】LIN总线传输协议
LIN总线:帧结构详解
江苏推进粮食储备智慧化建设 让优粮优储
申报非全日制研究生只有选择名校才更有价值吗?
如何规划财务,避免负债累积导致无法偿还?