51Nod-1319-跳跃游戏(三角形定理)
![](http://file.51nod.com/images/icon/ok.png)
![](http://file.51nod.com/images/icon/star.png)
![](http://file.51nod.com/images/icon/plus.png)
第一行一个整数T,表示测试数据的数量,1<=T<=10。 接下来有T组相同格式的数据。 每组数据的第一行包含两个整数x、N,其中 -1,000,000,000<=x<=1,000,000,000 , 1<=N<=50。 接下来N行,每行一个整数A[i],其中1<=A[i]<=1,000,000,000。
每组测试数据输出一行一个整数,即能使机器人完成任务最少跳跃的次数。
2 5 1 5 1 1 10
1 2
![](http://img.51nod.com/ti_40_40/upfile/000fbd5d/08d1c1d1643d803d0000000000000008.jpeg)
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define maxn 105
#define inf 0x3f3f3f3f
typedef long long ll;
ll a[maxn],b[maxn];
int main()
{ll T,i,num,ans,n,x,sum;scanf("%lld",&T);while(T--){sum=0;memset(b,0,sizeof(b));scanf("%lld%lld",&x,&n);if(x<0)x=-x;for(i=1;i<=n;i++){scanf("%lld",&a[i]);sum+=a[i];b[i]=max(b[i-1],a[i]);//保存当前所有边的最大值}ans=x/sum*n;//刚开始沿直线走的次数num=x/sum*sum;;//当前沿直线走的距离if(x==0){printf("0\n");continue;}if(ans<2*n){ans=num=0;for(i=1;i<=2*n;i++){num+=a[(i-1)%n+1];ans++;if(num>=x && num+x>=2*b[min(n,i)])//三角形定理://当三角形两个最小边长之和大于最大边长时//必然可以构成三角形,变形得:三角形周长大于//2倍的最大边长即可break;}printf("%lld\n",ans);continue;}for(i=1;i<=n;i++){if(num>=x)break;num+=a[i];ans++;}printf("%lld\n",ans);}
}
51Nod-1319-跳跃游戏(三角形定理)相关推荐
- leetcode-45 跳跃游戏II
给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2,3,1,1,4] 输 ...
- LeetCode-笔记-45.跳跃游戏II-贪心算法
LeetCode-笔记-45.跳跃游戏II-贪心算法 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后 ...
- 《LeetCode力扣练习》第55题 跳跃游戏 Java
<LeetCode力扣练习>第55题 跳跃游戏 Java 一.资源 题目: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大 ...
- LeetCode 55. 跳跃游戏 中等难度
55. 跳跃游戏 题目: 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1:输入: [2,3,1,1, ...
- Leetcode1696. 跳跃游戏 VI[C++题解]:dp和单调队列求滑动窗口最值
文章目录 题目分析 题目链接 单调队列板子链接 Deque知识补充 题目分析 题目重述:给定一个数组(有正数有负数)和一个步长k,从下标0处开始往前跳,每次最多往前跳k步.求跳到最后一个位置,得分之和 ...
- LeetCode:跳跃游戏【55】
LeetCode:跳跃游戏[55] 题目描述 给定一个非负整数数组,你最初位于数组的第一个位置.数组中的每个元素代表你在该位置可以跳跃的最大长度.判断你是否能够到达最后一个位置. 示例 1: 输入: ...
- LeetCode 55跳跃游戏56合并区间57插入区间
原创公众号:bigsai 希望和优秀的你做朋友,感觉不错还请一键三连. 回复进群即可加入和200+人一起打卡.上周打卡: LeetCode 47全排列Ⅱ&48旋转图像 LeetCode 49字 ...
- LeetCode 45跳跃游戏46全排列
原创公众号:bigsai,回复进群加入力扣打卡群. 昨日打卡:LeetCode 42字符串相乘&43通配符匹配 跳跃游戏 题目描述: 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中 ...
- 【LeetCode 55】【LeetCode 45】 跳跃游戏
55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] ...
最新文章
- C语言fgetpos()函数:获得当前文件的读写指针(转)
- 基于OpenCV的膨胀和腐蚀
- laytpl遍历实体列表_Layui数据表格之获取表格中所有的数据方法
- 前端学习(2269)vue造轮子之添加icon
- leetcode124. 二叉树中的最大路径和
- 一程序员被判 9 个月:因薪酬等问题离职,rm -f * 删库,瘫痪 6 个小时
- 用PHP做一道单选选择题的页面,【大神看过来】根据一个用PHP做的单选投票,改成多选,且可显示...
- 职中计算机应用基础期末考试题,职中计算机应用基础期末试卷.doc
- yii CComponent组件 实例说明1
- 蜂鸣器基本介绍及实现程序
- Excel中去掉多余的网格线
- Django | ORM choices参数详解
- 电脑DNS被劫持怎么办
- Mocking and Stubbing
- C# 以MP3的格式将录制的音频数据写入文件流
- 【翻译】揭开HTML5的神秘面纱
- python只显示重复值_使用内置条件格式的OpenPyXL:重复值和唯一值
- M4A音频格式是如何转成MP3格式的?
- formCreate
- python正则表达式爬取网页数据_常用正则表达式爬取网页信息及HTML分析总结
热门文章
- 2017年8月3日 星期四 --出埃及记 Exodus 28:25
- 测试方案模板(性能测试为例子)
- 单晶xrd测试衍射仪法
- HTML配合js制作弹框,弹出信息框展示后台内容
- 如何理解和定义城市大脑
- 3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
- 收银怎样挂单和取单_6、银豹收银台-收银/挂单取单/货流/交接班
- 成品直播源码,实现在平台内部的搜索
- C++习题二:职工管理系统:
- 邮件服务器 之 利用debian sarge和postfix 2.1构建媲美ISP的邮件系统