• HOJ 2245 浮游三角胞(数学啊 )


    题目链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2245


    Time Limit: 500 MS Memory Limit: 50000 K
    Total Submit: 129(38 users) Total Accepted: 66(34 users) Rating: Special Judge: No
    Description

    如图所看到的。Zoidtrip是一个休闲向小游戏……
    玩家须要操纵一个以斜向下四十五度速度v不停前进的三角胞,不停地避开水平障碍物,每次点击屏幕能够变换行进方向。[能够将斜向左(右)45°变换为斜向右(左)45°]
    如今,有n层障碍物。第i层障碍物能够从横坐标l[i]~r[i]的范围内穿过去(包含l[i]与r[i]),第i层障碍物与第i-1层障碍物之间的距离为d[i]。
    请问,假定在能够无限变换方向的条件下,最多能够前进至第几层?
    我们规定玩家出生位置为第0层、横坐标为0的地方。
    你能够在随意实数时刻进行方向变换。

    Input
    多组測试数据。
    每组測试数据第一行为两个正整数 n和v。
    接下来n行,每行3个整数l[i] , r[i] , d[i]。
    ( N <= 2000000。0 <= 全部数据 < 2^31 )
    Output
    对于每组数据。输出一行,包括一个整数,代表最多前进至的层数。
    Sample Input
    3 7
    1 3 1
    4 10 5
    8 10 1
    4 1
    1 1 1
    2 5 10
    1 1 1
    3 5 2
    Sample Output
    2
    4
    Hint

    “第i层障碍物与第i-1层障碍物之间的距离为d[i]”
    因此d[1]是第一层和第零层的距离。

    例子1解释例如以下:

    我们能够出生位置向右下移动至第一层坐标为1的地方。
    接下来能够继续一直向右下移动至第二层坐标为6的地方。

    但不管怎样也无法移动至第三层的8~10之间。


    例子2说明例如以下:
    (0,0)->(1,1)->(2,2)->(3,1)->(4,3)
    因此到达第四层。

    Source
    哈尔滨理工大学第五届ACM程序设计竞赛


    PS:

    把 三角胞在每一层能走到的且满足能避开障碍物的最左和最右的距离找出来!

    代码例如以下:

    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    #define LL long long
    #define maxn 2000047
    LL l[maxn], r[maxn], d[maxn];
    
    int main()
    {
        LL n, v;
        while(scanf("%lld%lld",&n,&v)!=EOF)
        {
            LL L = 0,R = 0;
            int ans = 0;
            for(int i=0; i<n; i++)
            {
                scanf("%lld%lld%lld",&l[i],&r[i],&d[i]);
            }
            for(int i = 0; i < n; i++)
            {
                if(l[i] > r[i])
                {
                    LL t = r[i];
                    r[i] = l[i];
                    l[i] = t;
                }
                L-=d[i];
                R+=d[i];
                L = max(l[i],L);
                R = min(r[i],R);
                if(L > R)
                {
                    break;
                }
                ans++;
            }
            if(v == 0)
                ans = 0;
            printf("%d
    ",ans);
        }
        return 0;
    }
    


  • 相关阅读:
    OL8.0静默安装Oracle 19C
    MYSQL GTID 复制
    MYSQL异步复制
    YUM方式安装MYSQL5.7
    【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)
    【网友的】《一个程序猿的生命周期》读后感
    连载《一个程序猿的生命周期》-22.缺了一条腿的公司
    续评《遇到一位ITer,一位出租车司机,必看》
    遇到一位ITer,一位出租车司机,必看。
    连载《一个程序猿的生命周期》-21.而立之年,第一次跳槽,寻求转型
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5136857.html
Copyright © 2020-2023  润新知