4363: 丢手绢
来源:互联网 发布:大数据 金融行业 编辑:程序博客网 时间:2024/06/10 03:44
丢手绢,又叫丢手帕,我国传统的民间儿童游戏。开始前,准备几块手绢,然后大家推选一个丢手绢的人,其余的人围成一个大圆圈蹲下。
游戏开始,被推选为丢手绢的人沿着圆圈外行走。丢手绢的人要不知不觉地将手绢丢在其中一人的身后。被丢了手绢的人要迅速发现自己
身后的手绢,然后迅速起身追逐丢手绢的人,丢手绢的人沿着圆圈奔跑,跑到被丢手绢人的位置时蹲下,如被抓住,则要表演一个节目,
可表演跳舞、歌谣、讲故事等。
Lyf老师碰到一个难题:现在有n个学生围成一圈丢手绢,他们等间距的分布在圆周上,圆的周长为1000,现在有1个学生出局,剩下的人
要移动位置重新等间距分布,问他们最少需要移动多少距离。Lyf老师脑子有点糊涂,现在这个难题交给你了。
Input
多组测试,每组输入n,1<=n<=1000000000。
Output
对于每组输入,四舍五入输出最少移动距离。
Sample Input
235
Sample Output
0167200
3--2 1x
4---3 (1 +1 )x
5---4 ( 1+2+1 ) x
6--5 ( 1+2+2+1)x
7---6 (1+2+3+2+1)x
.........
#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<map>#include<vector>#include<queue>#include<stack>#define eps 1e-8#define ll long longconst int INF = 0x3f3f3f3f;const long long mod=1e9+7;const int N=105;using namespace std;int main(){ ll n,ans; while(~scanf("%lld",&n)) { if(n<=2) { printf("0\n"); continue; } if(n>=2000) { printf("250\n"); continue; } ll a=(n-2)/2; ll b=(n-1)/2; if(b>a) ans=b*b; else ans=b*(b+1); double k1=1000.0/((n-1)*1.0); double k2=1000.0/(n*1.0); double kk=k1-k2; double mm=kk*(double)ans; mm+=0.500; printf("%lld\n",(ll)mm); }}
阅读全文
0 0
- 4363: 丢手绢
- 丢手绢
- 丢手绢问题
- 丢手绢 (暴力)
- 1875 丢手绢
- 51nod 1875 丢手绢
- 51nod 1875 丢手绢
- 丢手绢java代码即约瑟夫问题
- (丢手绢)hdu 2104 hide handkerchief
- 51nod 1875 丢手绢(模拟)
- 简单算法之丢手绢游戏/c++
- 51nod1875-打表&模拟-丢手绢
- Algorithm One Day One -- 约瑟夫环(丢手绢问题)
- 51nod 1875-丢手绢(打表)
- 51NOD 1875丢手绢 (思维+打表)
- 51nod 1875 丢手绢(离线打表)
- 51nod 1875 丢手绢 vector模拟循环问题
- java入门小程序—17人游戏(丢手绢问题)
- Redis 的性能幻想与残酷现实
- C#时间处理(DateTime和TimeSpan)
- 语义网基础教程 (第一版)4 网络本体语言OWL
- 方法重载(Overload)和方法重写(Override)
- APUE 学习环境配置
- 4363: 丢手绢
- 故障自愈机器人,保你安心好睡眠
- MyBatis返回类型List<Object>的设置
- jq实现无缝隙轮播
- rac删除节点步骤
- Java设计模式百例
- JSP——九大内置对象
- Redis: 为行情数据库设计键值
- NSIS Error Installer integrity check has failed.