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\n",ans);
    }
    return 0;
}
时间: 2025-01-23 13:56:28

HOJ 2245 浮游三角胞(数学啊 )的相关文章

Python 趣味百题

趣味整数 1 不重复的3位数 -易 2 水仙花数 -易 3 完全数 -中 4 相亲数 -中 5 黑洞数 -中 6 勾股数 -易 7 自守数 -易 8 3位反序数 -中 趣味素数 1 素数 -中 2 孪生素数 -中 3 金蝉素数 -中 4 可逆素数 -中 5 回文素数 -中 6 平方回文素数 -中 7 梅森尼数 -中 8 哥德巴赫猜想 -中 9 等差素数数列 -中 趣味图形 1 回型矩阵 -中 2 九九乘法表 -易 3 杨辉三角 -易 数学问题 1 天平秤物 -难 2 黑色星期五 -易 3 存钱问

codeforces707C:Pythagorean Triples

Description Katya studies in a fifth grade. Recently her class studied right triangles and the Pythagorean theorem. It appeared, that there are triples of positive integers such that you can construct a right triangle with segments of lengths corresp

Unity3D初学之2D动画制

作者:Alex Rose Unity最近宣布推出额外的2D游戏支持,添加了Box 2D物理和一个精灵管理器. 但这里还是有些技巧需要牢记在心.逐帧更改图像只是动画制作的冰山一角,若要让你的游戏出色运行,你还得使用转换和旋转等功能. 现在让我们先从基本技巧开始. 更改帧 如果你已经准备好了制作动画的纹理,你可能会使用SpriteManager脚本的付费版本,或者Unity的新版本.假设你使用的是2D位面和纹理.这就是一个低效率的方法,但如果你是在制作一个game jam的项目,你可能会想塞入一些可

【Java学习笔记之八】java二维数组及其多维数组的内存应用拓展延伸

多维数组声明 数据类型[][] 数组名称; 数据类型[] 数组名称[]; 数据类型数组名称[][]; 以上三种语法在声明二维数组时的功能是等价的.同理,声明三维数组时需要三对中括号,中括号的位置可以在数据类型的后面,也可以在数组名称的后面,其它的依次类推. 例如: int[][] map; char c[][]; 和一维数组一样,数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度.  -------------------------------------------------

整数划分类型题目

整数划分 --- 一个老生长谈的问题: 1) 练练组合数学能力. 2) 练练递归思想 3) 练练DP 总之是一道经典的不能再经典的题目: 这道好题求: 1. 将n划分成若干正整数之和的划分数. 2. 将n划分成k个正整数之和的划分数. 3. 将n划分成最大数不超过k的划分数. 4. 将n划分成若干奇正整数之和的划分数. 5. 将n划分成若干不同整数之和的划分数. 1.将n划分成不大于m的划分法:  1).若是划分多个整数可以存在相同的:  dp[n][m]= dp[n][m-1]+ dp[n-m

双轨制团队互助奖金制度解析,双轨互助系统开发

一.积分奖A.普通卡:消费800元:每天奖励5元,连续奖励64天,共计320元,相当于6折享受产品.B.金卡:消费4000元:每天奖励24元,连续奖励100天,共计2400元,相当于4 折享受产品.C.钻石卡:消费8000元:每天奖励50元,连续奖励112天,共计5600元,相当于3折享受产品. 二.团队互助奖A.会员由公司统一按照加入先后顺序以三角矩阵式数学模块排列,自上而下滑落自动形成左右A.B.两区:银卡会员:消费区20%,第二消费区30%金卡会员:消费区30%,第二消费区30%钻卡会员:

[从头学数学] 第179节 三角初等变换

剧情提要: [机器小伟]在[工程师阿伟]的陪同下进入了结丹中期的修炼, 这次要修炼的目标是[三角初等变换]. 正剧开始: 星历2016年04月15日 15:32:35, 银河系厄尔斯星球中华帝国江南行省. [工程师阿伟]正在和[机器小伟]一起研究[三角初等变换]. <span style="font-size:18px;"> if (1) { var mathText = new MathText(); var s = [ '和角.差角公式', 'sin(A+B) = si

HDU 6129 Just do it 数学 杨辉三角 递推

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6129 题目描述: 将a序列转化成b序列, b[i] = a[1]^a[2]^a[3]^a[4]^......^a[i] 重复m次, 求b 解题思路: 我开始找的是系数的规律发现他满足杨辉三角, 也就是说我现在给出n 和 m , 然后求最后一项是奇数还是偶数, 然后自己就死推呀, 推了两个多点儿把所有的表都打遍了也没找到规律.....其实是有公式的......: C(x+y-2, y-2) 表示第i

Codeforces 815 B Karen and Test 杨辉三角 数学

题目链接: http://codeforces.com/problemset/problem/815/B 题目描述: 给你n个数, 让你求第一个数加第二个数 + 第二个数减第一个数 + ...... + 第n-1个数加/减第n个数, 得到一个n-1的新序列再循环 + - , 数列的长度由n --> n-1 --> n-2......1, 求最后的数是多少, 答案模MOD, n < 2e5 解题思路: 找规律吧, 比赛的时候一个点儿也没有找到, 自己对数字的敏感性太差, 首先当某一行个数为