2017 ccpc秦皇岛M Safest Buildings
来源:互联网 发布:淘宝自动回复短语 创意 编辑:程序博客网 时间:2024/05/16 15:56
https://vjudge.net/contest/203034#problem/M
给一个大圈半径,圆心在原点,再给一个小圆半径,再给出一些点的左边,小圆在大圆中任意一个可以出现的位置的概率相同,小圆必须被大圆完全覆盖,问那些点被小圆覆盖的几率最大。因为一开始读错题以为求小圆最多能覆盖多少个点,但其实并没有那么难,只要找到某个点能被小圆覆盖的最大范围即可,即以点为小圆的边上一点,围绕这个点转一个圈即可,即以某一点为圆心,以小圆直径为半径画圆的面积与大圆面积的交面积与大圆的比值即为被覆盖到的概率,全部求出来排序即可。
#include <iostream>#include <stdio.h>#include <queue>#include <string.h>#include <algorithm>using namespace std;struct node{int x,y;}a[105];int main(){int T;cin>>T;while(T--){int m,R,r; cin>>m>>R>>r; int i; int b[105]; long long int maxn=-1; int k=0; for(i=1;i<=m;i++) { scanf("%d%d",&a[i].x,&a[i].y); long long int dist=a[i].x*a[i].x+a[i].y*a[i].y; if(dist<=(R-2*r)*(R-2*r))b[k++]=i; else if(maxn==-1||maxn>=dist)maxn=dist; } if(k==0) { for(i=1;i<=m;i++) { if((a[i].x*a[i].x+a[i].y*a[i].y)==maxn) { b[k++]=i; } } } printf("%d\n",k); for(i=0;i<k;i++) { if(i==k-1) { printf("%d\n",b[i]); } else printf("%d ",b[i]); } }return 0;}
阅读全文
0 0
- 2017CCPC秦皇岛 M:Safest Buildings
- 2017CCPC秦皇岛站 M.Safest Buildings
- 2017 ccpc秦皇岛M Safest Buildings
- ZOJ 3993 && 2017CCPC秦皇岛 M:Safest Buildings
- 2017 秦皇岛CCPC M题 Safest Buildings(概率+思维+计算几何)
- 2017 CCPC 秦皇岛站 M题题解 ZOJ 3993 Safest Buildings
- ZOJ 3993(2017CCPC秦皇岛站M题)Safest Buildings
- 2017 CCPC 秦皇岛 M
- CCPC秦皇岛 ZOJ3993 Safest Buildings(半径比较/圆的相交面积)
- 2017 ccpc 秦皇岛 M(几何)
- 2017CCPC 秦皇岛现场赛 M-String of CCPC
- (ccpc秦皇岛站)M
- 2017 CCPC 秦皇岛站
- 2017 CCPC秦皇岛 B
- 2017 CCPC秦皇岛 D
- 2017CCPC秦皇岛
- 2017 CCPC 秦皇岛
- 2017 CCPC 秦皇岛 C
- [Leetcode] Union Find
- 【Android】源码分析
- C#如何以管理员身份运行程序
- 麻省理工学院-2017年-深度学习与自动驾驶视频课程分享
- 你的眼光应该放长远些——明辨
- 2017 ccpc秦皇岛M Safest Buildings
- 用户配置文件和密码配置文件、用户组及用户管理
- php 输出语句
- BZOJ3673 & BZOJ3674 可持续化并查集 【可持续化线段树维护可持续化数组】
- 笔记: http_proxy有关的环境变量
- 【LeetCode】121.best-time-to-buy-and-sell-stock
- FZU
- AVL树的python实现
- 【iOS】Cocoa(iOS,OSX)安保系统设计实现