Graveyard(UVa1388)
2015-09-11 21:49
405 查看
题意:
在一个周长为10000的圆上有平均分布着n个雕像,现在在这个圆上加上m个雕像,问想要平均分布(n+m)个雕像,最少要把原来的n个雕像一共移动多少距离。
思路:
先求出n个雕像和(n+m)在圆上的平均距离。把n个雕像的圆以任意一个点为起点,求出第i个点的值,用第i个点的值除以(n+m)的圆的点的平均值(化为整数)。求得(n+m)上离i最近的一个点,用这点的值乘以(n+m)的点的平均值。然后再减去i点上的值,就是最短距离,求n个点既为总和。
在一个周长为10000的圆上有平均分布着n个雕像,现在在这个圆上加上m个雕像,问想要平均分布(n+m)个雕像,最少要把原来的n个雕像一共移动多少距离。
思路:
先求出n个雕像和(n+m)在圆上的平均距离。把n个雕像的圆以任意一个点为起点,求出第i个点的值,用第i个点的值除以(n+m)的圆的点的平均值(化为整数)。求得(n+m)上离i最近的一个点,用这点的值乘以(n+m)的点的平均值。然后再减去i点上的值,就是最短距离,求n个点既为总和。
#include <iostream> #include <cstdio> #include <cmath> using namespace std; int main() { int n,m; while(cin>>n>>m) { double len_n=10000.0/n; double len_nm=10000.0/(n+m); double ans=0; for(int i=1;i<n;i++) { double a=i*len_n; int b=floor(a/len_nm+0.5); ans+=fabs(a-b*len_nm); } printf("%.4lf\n",ans); } return 0; }
相关文章推荐
- LNMP环境的基础搭建,即Linux、Nginx、MySQL、PHP环境
- javascript “||”、“&&”的灵活运用
- Android启动器(Launcher)开发详解
- Scala 深入浅出实战经典 第88讲:Scala中使用For表达式实现map、flatMap、filter
- svn服务器环境搭建个人记录
- 我的openwrt学习笔记(二十九)webserver之 thttpd
- elementary OS系统中安装sougou拼音后报错处理方法
- 1.Linux链接概念 http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html
- ios-断点续传
- 简单的动画播放
- 盘点大数据生态圈,那些繁花似锦的开源项目
- uva 1395 - Slim Span(生成树)
- JAVA- FileInputStream与FileReader的区别
- 【POJ2516】【最小费用流】
- 巴菲特投资秘诀
- 第九篇:OC中的万能指针id 及 构造方法的实现与应用
- #2028 Lowest Common Multiple Plus
- (4.1.35.4)android中的native crash
- fstat、stat和lstat 区别(转) http://www.cnitblog.com/guopingleee/archive/2008/11/13/51411.aspx
- Java文件下载