LA 3708(贪心)
2015-01-24 23:21
316 查看
题意:有n个雕塑等距放在一个周长为10000的圆上,现在要再放m个雕塑,要使所有雕塑仍然保持等距,问n个雕塑最少移动总距离是多少。
题解:让n个中的一个雕塑不动,作为原点,那么剩下的雕塑需要移动的位置就确定了,然后把圆周长按比例缩小为(n + m),只要把每个雕塑移动到和它最近的整数点位置就可以了。然后再将所有移动的距离按圆周长是1的比例缩小加起来。结果放大10000倍。
#include <stdio.h>
#include <math.h>
int main() {
int n, m;
while (scanf("%d%d", &n, &m) == 2) {
double res = 0;
for (int i = 1; i < n; i++) {
double pos = double(i) / n * (n + m);
res += fabs(pos - floor(pos + 0.5)) / (n + m);
}
printf("%.4lf\n", res * 10000);
}
return 0;
}
题解:让n个中的一个雕塑不动,作为原点,那么剩下的雕塑需要移动的位置就确定了,然后把圆周长按比例缩小为(n + m),只要把每个雕塑移动到和它最近的整数点位置就可以了。然后再将所有移动的距离按圆周长是1的比例缩小加起来。结果放大10000倍。
#include <stdio.h>
#include <math.h>
int main() {
int n, m;
while (scanf("%d%d", &n, &m) == 2) {
double res = 0;
for (int i = 1; i < n; i++) {
double pos = double(i) / n * (n + m);
res += fabs(pos - floor(pos + 0.5)) / (n + m);
}
printf("%.4lf\n", res * 10000);
}
return 0;
}
相关文章推荐
- 【贪心】【POJ3154】墓地雕塑(Graveyard, NEERC 2006, LA 3708)需要稍稍加工的(先贪心,再确保能这样贪(可行性&&如果可行必定最优&&非证明最优性)的题)(K)
- 【贪心】【POJ3154】墓地雕塑(Graveyard, NEERC 2006, LA 3708)需要稍稍加工的(先贪心,再确保能这样贪(可行性&&如果可行必定最优&&非证明最优性)的题)(K)
- LA 4254 Processor(二分+贪心+优先队列)
- la 4731 贪心+DP+概率
- LA 3177 Beijing Guards(二分法 贪心)
- LA-3708 - Graveyard 简单的模拟一下即可
- LA-3708 - Graveyard 简单的模拟一下即可
- LA 3708 && POJ 3154 Graveyard (思维)
- 墓地雕塑(Graveyard, NEERC 2006, LA 3708)
- LA 3266 || UVALive 3266 Tian Ji -- The Horse Racing 田忌赛马(贪心)
- LA 4254 Processor 贪心+二分 *
- 《算法竞赛-训练指南》第一章-1.4_LA 3708
- 墓地雕塑(Graveyard, NEERC 2006, LA 3708)
- 墓地雕塑(Graveyard, NEERC 2006, LA 3708)
- LA 3041 Colored Cubes (暴力枚举+贪心)
- LA - 5734(hdu - 4162) - Shape Number(指针扫描+贪心)
- LA 3266&HDU 1052 Tian Ji -- The Horse Racing(田忌赛马,贪心)
- LA 6530 Football 贪心
- LA 4945 Free Goodies(贪心)
- 贪心水题。UVA 11636 Hello World,LA 3602 DNA Consensus String,UVA 10970 Big Chocolate,UVA 10340 All in All,UVA 11039 Building Designing