UVALive 6092 Catching Shade in Flatland
2015-02-18 14:55
337 查看
https://icpcarchive.ecs.baylor.edu/external/60/6092.pdf
坐标上有很多相离圆,问一条可以绕原点旋转的线段与这些圆相交的最长弦长之和。
直接模拟即可。注意是线段。
坐标上有很多相离圆,问一条可以绕原点旋转的线段与这些圆相交的最长弦长之和。
直接模拟即可。注意是线段。
#include<iostream> #include<algorithm> #include<math.h> #include<cstdio> using namespace std; int main() { int n, a[500], b[500], r[500]; while (cin >> n, n) { for (int i = 0; i < n; i++) cin >> a[i] >> b[i] >> r[i]; double maxn = 0; for (int i = 0; i < 24 * 60; i++) { double k = asin(1.0)*(i / 360.0), sum = 0; for (int j = 0; j < n; j++) if ((i / 360 == 0 || i / 360 == 3) && a[j] + b[j] * tan(k)>0 || (i / 360 == 1 || i / 360 == 2) && a[j] + b[j] * tan(k) < 0) { double dis = -2 * tan(k) *a[j] * b[j] + b[j] * b[j] - a[j] * a[j]; dis = a[j] * a[j] + dis / (tan(k)*tan(k) + 1); if (dis < r[j] * r[j]) sum += 2 * sqrt(r[j] * r[j] - dis); } maxn = max(maxn, sum); } printf("%.3lf\n", maxn); } return 0; }
相关文章推荐
- UVALive 6092 Catching Shade in Flatland 线段被多个不相交圆截取的长度和
- UVALive 6092 Catching Shade in Flatland --枚举+几何计算
- UVALive 6092 - Catching Shade in Flatland(线段和圆交线段最大长度)
- UVALive 6092 Catching Shade in Flatland --枚举+几何计算
- UVALive 7267 Mysterious Antiques in Sackler Museum 思维题 拼接矩形
- UVALIVE 6958 I 求某TSP路径长度恰为定值+meet in middle + 折半
- UVALive 6465 Islands in the Data Stream 暴力模拟
- UVALive 7267 Mysterious Antiques in Sackler Museum (判断长方形)
- uvalive 6600 - Spanning trees in a secure lock pattern
- UVALive 7267 Mysterious Antiques in Sackler Museum (判断长方形)
- UvaLive 6600 Spanning trees in a secure lock pattern 矩阵行列式
- UVALive 5102 Fermat Point in Quadrangle 极角排序+找距离二维坐标4个点最近的点
- UVALive-7297-Hounded by Indecision
- 2015北京邀请赛 UVALive7267 Mysterious Antiques in Sackler Museum
- 【UVALive】2145 - Lost in Space(数学)
- UVALive 4221 Walk in the Park 扫描线
- UVALive - 7267 Mysterious Antiques in Sackler Museum
- UVALive 7297 Hounded by Indecision BFS
- UVALive - 2728 A Spy in the Metro DP
- UvaLive 6600 Spanning trees in a secure lock pattern 矩阵行列式