HZNUOJ 2394 白娘子与许仙断桥相会

Description

白娘子与许仙突破重重阻碍,终于可以重逢在断桥之上。

    假设断桥是具有整数坐标的点上的无限的坐标轴。许仙与白娘子,其中一个人在x1 = a上,另一个在x2 = b上。
    他们俩可以在任何方向上沿着线路移动一次无限次。当他们移动时,期中一个人的疲倦根据以下规则改变:第一步将疲劳增加1,第二步增加疲劳2,第三步增加3,依此类推。例如,如果朋友首先向左移动,然后向右移动(返回到同一点),然后再向左移动他的疲劳等于1 + 2 + 3 = 6。
    许仙与白娘子想要在整数点上见。如果他们在同一点上相遇,求出他们的最小总疲劳度。

Input

    第一行包含单个整数a(1≤a≤1000) - 许仙的初始位置。
    第二行包含单个整数b(1≤b≤1000) - 白娘子的初始位置。
    保证a≠b。

Output

    如果他们俩在一整数点上相遇,则输出最小疲惫值。

input Copy

101 99

output Copy

2

input Copy

5 10

output Copy

9

原题链接:HZNUOJ--【美丽杭州】白娘子与许仙断桥相会

解题思路:小小贪心,没什么难度,看下去就能理解吧(或许)

ac代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int a,b;
    cin >> a >> b;
    int ans=0;
    int x=abs(a-b);//x记录两人相隔的距离
    int cnt_a=1,cnt_b=1; //cnt_a记录白娘子走一步所增加的疲劳值,cnt_b记录许仙走一步所增加的疲劳值
    while(x!=0)
    {
        if(cnt_a<=cnt_b)//如果白娘子所需的疲劳值少,就让白娘子走
        {
            x--;
            ans +=cnt_a;
            cnt_a++;
        }else//如果许仙所需的疲劳值少,就让许仙走
        {
            x--;
            ans += cnt_b;
            cnt_b++;
        }
    }
    cout << ans << endl;
    return 0;
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值