《算法竞赛-训练指南》第一章-1.4_LA 3708
2013-07-16 22:07
1086 查看
这样都给我过了。可见这也是到不怎么样的题目呀。其实,有些实现出来了还就真能过。
这道题目的思想就是,以一个已经建立的坟墓做为公共的起点,然后移动墓地雕像的时候,
就每次逼近比较,如果是每次逼近的时候距离在减小,那么可以,继续逼近,一旦出现逼近过头了,并且结果
比你不过头的时候还大,那就停止吧,就要这个结果吧。然后就是暴力解决。直到解决完所有的雕像。
贴出代码:(写的不好)
这道题目的思想就是,以一个已经建立的坟墓做为公共的起点,然后移动墓地雕像的时候,
就每次逼近比较,如果是每次逼近的时候距离在减小,那么可以,继续逼近,一旦出现逼近过头了,并且结果
比你不过头的时候还大,那就停止吧,就要这个结果吧。然后就是暴力解决。直到解决完所有的雕像。
贴出代码:(写的不好)
#include <stdio.h> #include <string.h> #include <math.h> #include <iostream> #include <string> using namespace std; const double PI = 3.141592653; int N, M; double start; double end; int main() { while (scanf("%d%d", &N, &M) != EOF) { start = 2 * PI / N; //开始的时候每个雕像相差的角度 end = 2 * PI / (M + N); //加入心的雕像的时候每个雕像所差的角度 double sum = 0; double temp = start; //开始的时候的角度. for (int i = 0; i < N - 1; i++) { double flag = end; double buf = 1e16; //来一个大一点的double while (fabs(temp - flag) < buf) // 逐渐逼近,出现不满足的时候立刻终止. { buf = fabs(temp - flag); flag += end; } temp += start; sum += buf; } printf("%.4lf\n", (sum / (2 * PI)) * 10000); } // system("pause"); return 0; }
相关文章推荐
- 《算法竞赛-训练指南》第一章-1.20_LA 3905
- 《算法竞赛-训练指南》第一章-1.13_LA 3635
- 《算法竞赛-训练指南》第一章-1.12_LA 3971
- 《算法竞赛-训练指南》第一章-1.16_LA 3177
- 《算法竞赛-训练指南》第一章-1.25-LA 2965
- 《算法竞赛-训练指南》第一章-1.22_LA 3209
- 《算法竞赛-训练指南》第一章-1.15_LA 3902
- 《算法竞赛-训练指南》第一章-1.23_LA 3695
- 《算法竞赛-训练指南》第一章-1.26_LA 3882
- 《算法竞赛-训练指南》第一章-1.7——UVa 11464
- 《算法竞赛-训练指南》第一章-1.5_UVa 10881
- 《算法竞赛-训练指南》第一章-1.11——Uva 10795
- 《算法竞赛-训练指南》第一章-1.19_UVa 11549
- 《算法竞赛-训练指南》第一章-1.24_pre二维矩阵中的最小连续矩阵和
- 《算法竞赛-训练指南》第一章-1.27-UVa 10635
- 《算法竞赛-训练指南》-第一章-1.10_UVa 11384
- 《算法竞赛-训练指南》第一章-1.21_LA2678
- 《算法竞赛-训练指南》第一章-1.24-pre_二维矩阵求最小子矩阵(O(n^3))
- 《算法竞赛-训练指南》第二章-2.12_LA 5059
- 《算法竞赛-训练指南》第一章-1.9——UVa11210