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

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: HOJ 2245 浮游三角胞(数学啊 ) Special Judge: No
Description
HOJ 2245 浮游三角胞(数学啊 )

如图所看到的。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\n",ans);
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116288.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • vue返回上一层不刷新页面_vue嵌套html

    vue返回上一层不刷新页面_vue嵌套html解决嵌套路由刷新时,路由没有变化,正常情况下页面是不会重新渲染的1、在router-view中加上条件渲染v-if默认为true。让它显示出来2、写写一个reload方法,在页面刷新只有,点击某个查询条件的时候调用这个重载的方法这是条件渲染变化了为false在修改数据之后使用$nextTick,条件渲染变化了为true则可以在回调中获取更新后的DOM如果需要带有查询参数…

  • 华为5大设计师讲述HarmonyOS UX设计背后的故事

    华为5大设计师讲述HarmonyOS UX设计背后的故事NEW关注剁手日记视频号最新视频→【暮云白版DJIPocket2来啦】来源|网易科技报道不到一周时间,HarmonyOS2.0用户就突破了1000万;而不到一个月的时间,Harmony…

  • 成功鲜有偶然:一览IT名人的教育成长经历

    成功鲜有偶然:一览IT名人的教育成长经历由于篇幅有限,只列举受公共认知度较高的创始人(百度百科对应人物词条被顶超过1000次)国内三强:李彦宏(百度创始人):本科就读于北京大学,硕士就读于布法罗纽约州立大学。曾任Infoseek工程师。马云(阿里巴巴创始人):本科就读于杭州师范学院。马化腾(腾讯创始人):本科就读于深圳大学。大三门户网站:王志东(新浪创始人):本科就读于北京大学,点击科技创始人。丁磊(网易创始人):本科就读于电子科

  • android开发揭秘!全靠这份Android知识点PDF大全,附答案[通俗易懂]

    android开发揭秘!全靠这份Android知识点PDF大全,附答案[通俗易懂]Glide缓存简介Glide的缓存设计可以说是非常先进的,考虑的场景也很周全。在缓存这一功能上,Glide又将它分成了两个模块,一个是内存缓存,一个是硬盘缓存。这两个缓存模块的作用各不相同,内存缓存的主要作用是防止应用重复将图片数据读取到内存当中,而硬盘缓存的主要作用是防止应用重复从网络或其他地方重复下载和读取数据。内存缓存和硬盘缓存的相互结合才构成了Glide极佳的图片缓存效果,那么接下来我们就分别来分析一下这两种缓存的使用方法以及它们的实现原理。我认识很多优秀的Android工程师,他们丝毫

  • JVM调优工具的使用方法

    JVM调优工具的使用方法转自:https://www.iteye.com/blog/pengjiaheng-552456常用的JVM调优工具:Jconsole,jProfile,VisualVMJconsole:jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里JProfiler:商业软件,需要付费。功能强大。详细说明参考这里VisualVM:J…

  • NLP︱高级词向量表达(二)——FastText(简述、学习笔记)「建议收藏」

    NLP︱高级词向量表达(二)——FastText(简述、学习笔记)「建议收藏」FastText是Facebook开发的一款快速文本分类器,提供简单而高效的文本分类和表征学习的方法,不过这个项目其实是有两部分组成的,一部分是这篇文章介绍的fastText文本分类(paper:A.Joulin,E.Grave,P.Bojanowski,T.Mikolov,BagofTricksforEfficientTextClassif…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号