zoukankan      html  css  js  c++  java
  • 东北育才 d1t4 漂流

    漂流

    flow.cpp

    题目描述

    暑期将至,小鼠Jack决定到鼠国最著名的蓝阴河去玩漂流。

    我们假定蓝阴河宽度为m米,其中每隔一定距离就会有一处障碍(为了让漂流更刺激~),一共有n个障碍,第i个障碍的Xi-Yi米处是一个开口,只有从障碍中间的开口处才能通过(开口包含Xi,Yi)。现在Jack位于1号障碍的开口处,他要划艇依次通过这些障碍,但是Jack比较懒,每当他向左或向右移动1米,他就会消耗1点体力。由于水流的作用,Jack向前移动不消耗体力。现在,他希望知道,他依次通过这些障碍所需要消耗的最小体力是多少。

    输入格式

    第一行2个整数:n,m。

    下面n行每行2个整数:Xi,Yi。(保证X1=Y1)

    输出格式

    第一行1个整数,代表答案。

    样例输入1

    样例输出1

    3 6

    1 1

    3 5

    2 4

    2

    样例输入2

    样例输出2

    4 6

    4 4

    5 6

    1 1

    3 4

    7

    样例解释

    样例1:(1,1)->(2,3)->(3,3)消耗体力为2+0=2

    样例2:(1,4)->(2,5)->(3,1)->(4,3)消耗体力为1+4+2=7

    数据范围

    对于20%的数据,2≤n,m≤100

    对于50%的数据,2≤n,m≤1000

    对于80%的数据,2≤n,m≤10^5

    对于100%的数据,2≤n≤10^5,1≤Xi≤Yi≤m≤10^9

    这道题题解给的特别迷,但其实非常简单。

    直接贪心,没次如果能走就直接往下走,如果不能走找到最近的口走。

    正确性:这样走有可能更好不可能更坏,所以贪心得证

    但是数据没有保证X1=Y1,标解直接用X1可A,用Y1不可A。

    但我们可以把X1到Y1每个点都跑一边找出最小的,复杂度不会超,也更稳妥

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define ll long long
    using namespace std;
    int main()
    {
        ll i,j;
        ll n;
        ll m;
        scanf("%lld%lld",&n,&m);
        ll sum=0;
        ll x,y;
        scanf("%lld%lld",&x,&y);
        ll start=x;
        ll min1,max1;
        for(i=2;i<=n;i++)
        {
            scanf("%lld%lld",&x,&y);
            int a=min(x,y);
            int b=max(x,y);
            if(start>=a&&start<=b)
            {
                continue;
            }
            else
            if(start<x&&start<y)
            {
                int l=min(x,y);
                sum=sum+l-start;
                start=l;
            }
            else
            if(start>x&&start>y)
            {
                int p=max(x,y);
                sum=sum+start-p;
                start=p;
            }
        }
        cout<<sum;
    }
    View Code
  • 相关阅读:
    2012 人民搜索 实习生招聘 笔试题(转)
    招行两地一卡——PayPal美元兑换人民币的最佳解决方案
    PHP上传图片类
    PHP获取随机数
    Linux下解压RAR软件下载和解压.zip和.rar文件
    Zend Framework学习(1)简介
    编程指导
    Zend Framework数据库操作总结
    Zend Framework学习(4)之前端控制器
    参数是否为FALSE的区别
  • 原文地址:https://www.cnblogs.com/ashon37w/p/7168647.html
Copyright © 2011-2022 走看看