湖科大校赛第三题
来源:互联网 发布:淘宝海报源代码 编辑:程序博客网 时间:2024/05/01 07:48
题目描述
小兔位于X轴的x点,欲跳至X轴的y点。x,y均为整数。小兔每次沿x轴直线跳跃,每跳的长度均为正整数,假设
小兔一共跳了n次才到目的地,每次跳的长度为F1,F2,..., Fn. 有规则如下:
F1=Fn=1
|Fi-Fi-1|<=1 , 2<=i<=n (注:| |是绝对值符号)
我们的问题是给定x,y, 如何使得n最小。
输入
包含多组数据,但不超过1000组。每组数据一行,每行包括两个整数x和y。0 <= x < y <= 1000000000 。
输出
对于每一组数据,输出一行,即从x到y的最小跳跃次数n。
样例输入
45 4845 4945 50
样例输出
334
#include<stdio.h>#include<string.h>#include<iostream>using namespace std;int a[100010];const int inf=1000000000;int main(){ int res=0; a[1]=1; for(int i=2;; i++) { a[i]=a[i-1]+2*i-1;//算最大峰且元素不重复的和,后一个比前一个多一个i多一个i-1 //cout<<a[i]<<endl; if(a[i]>=inf)break; } int j; int s,t; while(scanf("%d%d",&s,&t)!=EOF) { int tmp=t-s; for(j=1;; j++) { if(a[j]>tmp&&a[j-1]<=tmp)break; } j--;//找出最大峰 tmp-=a[j]; res=2*j-1; if(tmp==0)res=res; else if(tmp<=j)res++;//这样可以在tmp出多用一次 else res+=2;//否则只能加二,当然不可能加三,否则肯定多余两倍最大值,这是最大峰肯定会改变 printf("%d\n",res); }}
0 0
- 湖科大校赛第三题
- 山科大校赛C题
- 湘大校赛A题
- 武大校赛E题
- 2016湖大校赛 L题 The Sequence likes Ladder
- 华中科大校赛预赛1606 Naive
- [2014.04.27]科大校赛总结
- 武大校赛网络赛B题
- 队列调整 郑大校赛题
- 国防科大校赛I题: Prime Summation
- 广大校赛第八届C题
- 2017川大校赛A题
- 川大校赛总结
- 郑大校赛总结
- 2015武大校赛
- 武大校赛感想
- 河工大校赛终结
- 河工大校赛总结
- java动态代理解读
- redis视频
- Apache提示You don't have permission to access / on this server
- 判断二叉树是不是完全二叉树
- 网络七层协议的形象说明
- 湖科大校赛第三题
- HDU - 1501 Zipper
- Ubuntu Server 14.04升级Ubuntu Server 16.04
- 反射获得属性方法上面的注解
- java中线程总结
- js中解决如何获取css中的参数
- UVA - 424 Integer Inquiry
- html常用语法
- js必会知识点