当前位置: 首页 > news >正文

AcWing 4579. 相遇问题

这道题做个今天的结尾

比较简单

正在备战csp吗,正好刷一下

难度:简单
时/空限制:1s / 256MB
总通过数:1738
总尝试数:2584
来源:

CSP-J 2022 模拟赛

原题链接

4579. 相遇问题 - AcWing题库

题目描述

一个无限长的楼梯上站着两个人,其中一个人在第 a 级台阶上,另一个人在第 b 级台阶上。

两个人都可以自由的上下移动,每人每次可以向上或向下移动一级台阶。

每个人的每次移动都要消耗体力,具体为:

对于同一个人来说,其第 11次移动消耗的体力为 1,第 2 次移动消耗的体力为 2,第 3 次移动消耗的体力为 3,以此类推。

例如,如果一个人先向上移动一级台阶,再向下移动一级台阶,最后再次向上移动一级台阶,那么他消耗的总体力值为 1+2+3=6。

两个人想要通过合理移动,使得他们能够在同一级台阶上相遇,并且相遇时,两人消耗的总体力值之和尽可能小。

请你计算,两人消耗的总体力值之和的最小可能值。

输入格式

第一行包含一个整数 a。

第二行包含一个整数 b。

输出格式

一个整数,表示两人消耗的总体力值之和的最小可能值。

数据范围

所有测试点满足,1≤a,b≤1000,a≠b。

输入样例1:
3
4
输出样例1:
1
样例1解释

在本样例中,让第一个人上一级台阶或第二个人下一级台阶均可,消耗总体力为 1。

输入样例2:
101
99
输出样例2:
2
样例2解释

在本样例中,让第一个人下一级台阶,同时让第二个人上一级台阶即可,消耗总体力为 1+1=2。

输入样例3:
5
10
输出样例3:
9
样例3解释

在本样例中,一种最佳方案为让第一个人上两级台阶,同时让第二个人下三级台阶,消耗总体力为 1+2+1+2+3=9。

要解决这个问题,我们需要让两个站在不同台阶上的人通过移动相遇,并且使他们消耗的总体力值之和最小。
首先分析问题的关键特点
两人初始位置分别在第 a 级和第 b 级台阶
每次移动消耗的体力值等于移动次数(第 1 次 1 点,第 2 次 2 点,依此类推)
目标是找到最佳相遇点,使总消耗体力最小
解题思路
首先计算两人初始位置的距离 d = |a - b|
当 d = 1 时,只需其中一人移动 1 步,总消耗为 1
当 d > 1 时,最优策略是让两人向中间位置移动:
距离较近的人移动 k 步
距离较远的人移动 d-k 步
为使总消耗最小,应让两人的移动次数尽可能均衡

首先,我代码的思路是:
1.确保 a < b
2.当两人相邻时直接返回 1
3.计算中间点 c = (a+b)/2
4.计算 a 到 c-1 的体力消耗
5.计算 c+1 到 b 的体力消耗
6.输出总消耗

下面是我的代码

#include <bits/stdc++.h>
using namespace std;int main(){int a,b;cin>>a>>b;if(a>b){swap(a,b);}if(b-a==1){cout<<"1"<<endl;return 0;//特判}int s=0,c=(a+b)/2,ans=0;for(int i=a; i<=c-1; i++) ans++, s+=ans;ans=0;//清空for(int i=c+1; i<=b; i++) ans++, s+=ans;cout<<s;return 0;
}

http://www.lryc.cn/news/615588.html

相关文章:

  • Horse3D引擎研发笔记(三):使用QtOpenGL的Shader编程绘制彩色三角形
  • 企业级高性能web服务器
  • 香橙派 RK3588 部署千问大模型 Qwen2-VL-2B 推理视频
  • Kubernetes CronJob bug解决
  • 前端工程化:从构建工具到性能监控的全流程实践
  • 应用层Http协议(1)
  • Spring框架基础
  • 黑马SpringAI项目-聊天机器人
  • 力扣热题100------70.爬楼梯
  • Day38--动态规划--322. 零钱兑换,279. 完全平方数,139. 单词拆分,56. 携带矿石资源(卡码网),背包问题总结
  • 原生Vim操作大全
  • 大模型“涌现”背后的暗线——规模、数据、目标函数的三重协奏
  • 算法_python_学习记录_02
  • linux 操作ppt
  • Uipath Studio中邮件自动化
  • HTML全景效果实现
  • Android 开发问题:The specified child already has a parent.
  • 202506 电子学会青少年等级考试机器人五级器人理论真题
  • NX二次开发——面有关的函数
  • C++的结构体指针
  • 密集遮挡场景识别率↑31%!陌讯轻量化部署方案在智慧零售的实战解析
  • Linux文件操作详解:一切皆文件
  • app功能测试工具
  • 智慧水务漏检率↓75%:陌讯水下视觉监测方案实战解析
  • 动态规划(相同地方不同状态)
  • Web前端之Vue框架
  • 【牛客刷题】小红的区间删除
  • MM-2025 | 浙大vivo需求驱动的具身导航!CogDDN:具有基于决策优化和双过程思维的认知驱动导航方法
  • 客服Agent革命:智能客服系统的技术实现与效果评估
  • PyQt5技术栈简述