Codeforces 11B Jumping Jack(数学)
来源:互联网 发布:大连知润信息科技培训 编辑:程序博客网 时间:2024/05/18 01:12
题意:
Jack在数轴上跳。他第i次跳可以往左或往右跳i个单位。现在问你他最少花多少步跳到点x。
思路:
可以不管x正负把x变成正数。这样是等效的。然后他最快的跳法当然是往一个方向一直跳。如果这样恰好能到x。这样肯定是步数最小的解。如果不能恰好跳到。我们设按这种方法跳第一个比x大的位置为y。如果y-x是偶数的话。我们还是可以达到最优步数。就是先将第(y-x)/2步往左跳。其它不变。那么恰好也能到x。如果为奇数。变成下一个偶数就行了。为什么可以这样呢。因为不管怎样。x=(±1)+(±2)+(±3)+.......(±n)。所以要想跳到必须奇偶性一致。比y小一定不行、所以只有在y右边找了。
详细见代码:
#include<bits/stdc++.h>int main(){ int tp,x,ans; while(~scanf("%d",&x)) { x=x<0?-x:x,ans=ceil((-1+sqrt(1+8.0*x))/2),tp=ans*(ans+1)/2-x; while(tp&1) ans++,tp+=ans; printf("%d\n",ans); } return 0;}
1 3
- Codeforces 11B Jumping Jack(数学)
- Codeforces Beta Round #11 B. Jumping Jack (数学)
- CodeForces 11B - Jumping Jack
- Codeforces-11B-Jumping Jack
- cf#11-B - Jumping Jack-数学
- Codeforces Beta Round #11-B. Jumping Jack
- CF 11B Jumping Jack
- codeforce 11B. Jumping Jack
- 11B - Jumping Jack【思维】
- codeforces 603B (数学)
- CodeForces - 611B 数学思维
- Codeforces #164 B. Buttons (数学
- codeforces 708B (数学构造)
- Codeforces Round #290 (Div. 1)B. Fox And Jumping
- Codeforces 512B Fox And Jumping dp+gcd
- Codeforces Round #290 (Div. 1) B. Fox And Jumping
- Hust oj 1071 Jumping Jack(贪心)
- codeforces #230 (Div. 2) B(简单数学)
- gradle
- Linux下性能分析工具汇总
- MFC 限制对话框,窗口大小
- poj 2828 线段树
- 用jquery easyUI,子页面不能调用js?该如何处理
- Codeforces 11B Jumping Jack(数学)
- sql server create synonym 用同义词解决程序升级过程中架构名称改变的问题
- 工作周报004
- hdu 4888 Redraw Beautiful Drawings(最大流,判环)
- ①Java程序员应该掌握哪些技术?
- 在ASP.NET中过滤HTML字符串总结
- 数的划分
- Winform 统一捕获异常,捕获未处理异常
- 从excel中读取数据