蓝桥月赛编程题:元宵节触摸灯笼大赛
创作时间:
作者:
@小白创作中心
蓝桥月赛编程题:元宵节触摸灯笼大赛
引用
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;
}
热门推荐
养老保险缴存与退休金的关系及教师退休金计算方法
做空交易中的止损和止盈是什么意思?它们如何帮助管理风险?
心里难受怎么办?原因分析与应对方法
Windows 中的错误 403:原因及有效解决方案
深度学习模型压缩技术详解:修剪、量化与蒸馏
无畏契约新手指南 | 初学者百科
如何正确选购专业书籍?这类专业书籍的选择标准是什么?
史上"最贵"恐龙化石"入住"美国自然历史博物馆
最新的详细版数据中心建设方案
银行的流动性风险管理的指标与措施有哪些?
银行流动性风险管理:关键指标与应对措施
李子柒严选,成都的非遗文创又双叒叕火了
2025年蓝桥杯高效备考月计划,拿走不谢!
冷暖皮大揭秘:你的肤色与穿搭色彩的完美配对
重磅!2024年诺贝尔文学奖公布!
中国十大传统糖果:从宫廷御用到民间美味
考科目一的准备工作
轻断食5:2减轻脂肪肝、运动过程中停一停,能量消耗增加
汇率操纵国有哪些?如何定义汇率操纵?
《崩坏星穹铁道》景元人物介绍
2025热门修仙手游盘点 十款有意思的修仙手游排行榜
NFC风险与安全性:揭示其本质,安心享受NFC带来的便捷
美国取消堕胎权引争议 国际社会为保护堕胎权发声
清肺火和清肝火的食物
巧用对比构图,打造更具视觉冲击力的画面
家有小宝的爸妈注意了,支原体肺炎高发,这些干货请收好
《宗师列传·大唐诗人传》再现襄阳诗情画意
模型与管理学研究
AI又一突破,10种痴呆症类型同时诊断,将人类医生准确率提高26%
泡脚可以降血糖吗?医生的专业解答来了