ZOJ 3993 - Safest Buildings - [数学题]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3993
题意:
给出n幢建筑,每个都以一个点表示,给出点坐标。
有一个以原点为圆心,以R为半径的圆,记为圆O,是原始安全范围;
then,安全范围变为在原来那个圆内任意位置的以r为半径的圆(不会超出原来的圆),记为圆P;
求缩圈后,仍在安全范围内的概率最大的,所有的点。
题解:
怎么求概率?
对于一幢建筑(或者说一个点),以其为圆心,做一个以半径为2r的圆Q;
圆Q在圆O内的面积,除以圆O的面积,得到的商即为这个点对应的概率。
显然这个概率,有关于:“点和原点的距离”;
当R>2*r 时,
在以原点为圆心,以R-2*r为半径的圆的范围内的点,安全概率最高且全部相同;
如果不存在这样的点,则越靠近原点越安全;
当R<=2*r时,
在以原点为圆心,以2*r-R为半径的圆的范围内的点,安全概率最高且全部相同;
如果不存在这样的点,则越靠近原点越安全;
AC代码:
#include<bits/stdc++.h>
struct Point{
int id;
double d;
}p[];
int n;
double R,r;
int ans[],ans_cnt;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%lf%lf",&n,&R,&r); double SameSafe_R = fabs(R-*r);
double mini_d = 0x3f3f3f3f;
ans_cnt=;
for(int i=,x,y;i<=n;i++)
{
scanf("%d%d",&x,&y);
p[i].id=i;
p[i].d=sqrt(x*x+y*y); if(p[i].d<=SameSafe_R) ans[ans_cnt++]=p[i].id;
if(p[i].d<mini_d) mini_d=p[i].d;
} if(ans_cnt>)
{
printf("%d\n",ans_cnt);
for(int i=;i<ans_cnt;i++)
{
if(i!=) printf(" ");
printf("%d",ans[i]);
}
printf("\n");
}
else
{
for(int i=;i<=n;i++) if(p[i].d<=mini_d) ans[ans_cnt++]=p[i].id;
printf("%d\n",ans_cnt);
for(int i=;i<ans_cnt;i++)
{
if(i!=) printf(" ");
printf("%d",ans[i]);
}
printf("\n");
}
}
}
PS.比较奇怪的一点是,用vector会WA,用数组就不会。
ZOJ 3993 - Safest Buildings - [数学题]的更多相关文章
- ZOJ - 3993 - Safest Buildings (数学)
参考:https://blog.csdn.net/KuHuaiShuXia/article/details/78408194 题意: 描述了吃鸡刷圈的问题,给出楼的坐标点,和两次刷圈的半径R和r,现在 ...
- 2017 CCPC秦皇岛 M题 Safest Buildings
PUBG is a multiplayer online battle royale video game. In the game, up to one hundred players parach ...
- 2017CCPC秦皇岛 M题Safest Buildings&&ZOJ3993【复杂模拟】
题意: 给出两个半径R,r,R表示第一次的大圈半径,r表示第二次的小圈半径.第一次大圈的圆心位于(0,0),第二次小圈的圆心未知,但在大圈内,给你一个n,然后给出n个屋子的位置,问这些屋子中,第二次在 ...
- 2017 CCPC Qinhuangdao Site
A. Balloon Robot 假设机器人$0$时刻位于$0$号位置,那么每个气球所需的时间为$(s_a-b)\bmod m$. 将所有气球按这个时间排序,枚举每个气球的时间作为偏移量,得出最优解即 ...
- zoj 2358,poj 1775 Sum of Factorials(数学题)
题目poj 题目zoj //我感觉是题目表述不确切,比如他没规定xi能不能重复,比如都用1,那么除了0,都是YES了 //算了,这种题目,百度来的过程,多看看记住就好 //题目意思:判断一个非负整数n ...
- zoj 3716 Ribbon Gymnastics (思维数学题)
题目 以四个顶点为圆心画圆,圆面积不能重合,求四个圆的直径和最大是多少. #define _CRT_SECURE_NO_WARNINGS #include<string.h> #inclu ...
- ZOJ 3827 Information Entropy(数学题 牡丹江现场赛)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=5381 Information Theory is one of t ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- C++版 - 剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题,ZOJ 1088:System Overload类似)题解
剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题) 原书题目:0, 1, - , n-1 这n个数字排成一个圈圈,从数字0开始每次从圆圏里删除第m个数字.求出这个圈圈里剩下的最后一个数字 ...
随机推荐
- NHibernate 数据查询之Linq to NHibernate
刚学NHibernate的时候觉得,HQL挺好用的,但是终归没有与其他技术相关联,只有NHibernate用到,一来容易忘记,二来没有智能提示,排除错误什么的都不给力,直到看到一个同事用Linq to ...
- JAVA简单内存泄露分析及解决
一.问题产生 项目采用Tomcat6.0为服务器,数据库为mysql5.1,数据库持久层为hibernate3.0,以springMVC3.0为框架,项目开发完成后,上线前夕进行稳定性拷机,测试 ...
- CentOS 6.4 SSH 免密码登录
在配置apache集群分布时,要使用SSH免密码登录.假设现在有两台机器apache@svn(192.168.1.100)作为svn机,apache@app(192.168.1.101)作为app机. ...
- cocos2dx 3.0 scrollview 在android下面背景變綠色了
在windows上面跑的是OK的, 在android下面跑的時候就變成這樣子了:
- 配置Django框架为生产环境的注意事项(DEBUG=False)
问题描述: Django1.10版本中框架中settings.py配置文件 配置文件settings.py配置了下面两项: DEBUG= False ALLOWED_HOSTS = ['*'] #这样 ...
- Win10 取消桌面快捷键图标
新建文本文档 --- 写入如下内容 --- 改名为 .bat 并运行 @echo off color 2 reg delete HKCR\lnkfile /v IsShortcut /f reg de ...
- 3dmax导出模型使用相对路径读取纹理贴图
Shift+T快捷键打开“资源跟踪”窗口
- python对oracle数据库的操作
1 Oracle数据库 1.1 Oracle环境配置&客户端连接 1.1.1 下载安装Oracle绿色版客户端instantclient: 到o ...
- socket.io websocket
不能不知道的事: 在Http协议中,客户端向服务器端发送请求,服务器端收到请求再进行回应,整个过程中,服务器端是被动方,客户端是主动方: websoket是H5的一种基于TCP的新通信协议,它与Htt ...
- C++ template —— 模板基础(一)
<C++ Template>对Template各个方面进行了较为深度详细的解析,故而本系列博客按书本的各章顺序编排,并只作为简单的读书笔记,详细讲解请购买原版书籍(绝对物超所值).---- ...