Steps 数论水题
来源:互联网 发布:淘宝开店协议无法同意 编辑:程序博客网 时间:2024/05/29 14:17
原题
Description
One steps through integer points of the straight line. The length of a step must be nonnegative and can be by one bigger than, equal to, or by one smaller than the length of the previous step.
What is the minimum number of steps in order to get from x to y? The length of the first and the last step must be 1.
Input
For each test case, a line follows with two integers: 0 <= x <= y < 2^31.
Output
For each test case, print a line giving the minimum number of steps to get from x to y.
Sample Input
45 48
45 49
45 50
Sample Output
3
3
4
题意:从x走到y,要求第一步和最后一步步长为1,相邻两步长度差距不超过1(例123221合法,124221不合法),求最短步数
解:由题意可知,走的步长除去中间的一个点(或两个点)为左右对称,且为等差数列,所以先求一个等差数列,与y-x比较,差值再与i比较即可
<span style="font-size:18px;">#include <stdio.h>#include <string.h>long long num[50005];void inti(){ for(int i=0;i<50005;i++) //等差数列 num[i]=i*i+i;}int main(){ int x,y; inti(); int i; while(scanf("%d%d",&x,&y)!=-1) { int temp=y-x; for(i=1;temp>=num[i];i++); int sum=2*(i-1); //去掉中间一/两个点 if(temp-num[i-1]>i) sum+=2; else if(temp-num[i-1]<=i&&temp-num[i-1]>0) sum+=1; printf("%d\n",sum); } return 0;}</span>
0 0
- Steps 数论水题
- Steps
- Steps
- Steps
- Steps
- Steps
- Steps
- Steps
- steps
- Steps
- steps
- ZOJ.1871 Steps【水,”英语题“】 2015/09/22
- Poj.2590 Steps【“英语题”,水】 2015/09/22
- HDU 1004 数论水题
- Digital Clock 数论水题
- HDU 1576 A/B 数论水题
- HDU 1397 POJ 2262 数论水题.
- HDOJ1005 Number Sequence(数论水题)
- PHP 对数组进行压缩编码, 哪种最好?(php几种压缩方式的对比)
- [leetcode-96]Unique Binary Search Trees(c++)
- 解决c/c++的sequence points和side effects问题
- 互联网MySQL开发规范
- HDU 5059\BC 12B Help him
- Steps 数论水题
- 排序专题之归并排序
- Linux 数据库学习的准备工作---开发环境的配置codeblocks
- C/C++中字符串与数字之间的转换
- Redis 存储字符串和对象
- ThreadLocal源码解析
- java 获取当前时间的天、周、月、季度、半年度、年度开始和结束时间
- phpstorm设置编码 gbk gb2312 支持 asp
- NSDictionary及NSMutableDictionary