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

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.xdnf.cn/news/17370.html

相关文章:

  • Day38 Dataset和Dataloader类
  • Datawhale AI夏令营-记录2
  • NVIDIA Jetson实战笔记
  • 【c++】探秘Loop机制:C++中优雅的双向数据交互模式
  • 力扣 hot100 Day70
  • 【Python 高频 API 速学 ⑥】
  • CrystalDiskInfo 9.0.1 安装教程 - 硬盘检测工具下载安装步骤详解
  • 基于迁移学习的伺服电机轴承故障诊断
  • Python变量引用拷贝
  • 求和算法的向后稳定性 backward stable
  • 大模型“涌现”背后的暗线——规模、数据、目标函数的三重协奏
  • Spring 的原理探究
  • 服务器硬件电路设计之I2C问答(二):I2C总线的传输速率与上拉电阻有什么关系?
  • vs2022编译Activemq
  • 创建一个django项目
  • 【js】判断异步函数的返回值要加await
  • 大语言模型提示工程与应用:大语言模型对抗性提示安全防御指南
  • springboot 2.4跨域变化和swagger结合的问题
  • orcad的操作(1)
  • BGP笔记
  • 微积分 | 外微分
  • vue+flask山西非遗文化遗产图谱可视化系统
  • 通过 SCP 和 LXD 配置迁移 CUDA 环境至共享(笔记)
  • AI编程工具 | Trae介绍
  • 智能的本质
  • 实数与复数及欧拉公式关系
  • 卷板矫平机:金属板材的“脊椎按摩师”
  • 代理人工智能的隐藏威胁
  • 数学学习 | 高数、线代、概率论及数理统计荐书
  • 人脸情绪检测数据集-9,400 张图片 智能客服系统 在线教育平台 心理健康监测 人机交互优化 市场研究与广告 安全监控系统