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个数字.求出这个圈圈里剩下的最后一个数字 ...
随机推荐
- c#直接调用ssis包实现Sql Server的数据导入功能
调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...
- c#中如何退出程序后自动重新启动程序
//触发退出程序事件 private void button1_Click(object sender, EventArgs e) { Application.E ...
- PHP易混淆函数的区别及用法汇总
本文实例分析了PHP易混淆函数的区别及用法.分享给大家供大家参考.具体分析如下: 1.echo和print的区别PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的.ech ...
- easyui datagrid 单元格编辑(cell editing)
demo中有row editing 项目中发现个cell editing,但是有bug,修改好了 主要实现功能:单击数据表格单元格,编辑单元格数据 js代码如下: $.extend($.fn.data ...
- IIS6独立用户建立网站的方法,提高网站安全性
在Windows server 2003系统下,用IIS架设Web服务器,合理的为每个站点配置独立的Internet来宾账号,这样可以限制Internet 来宾账号的访问权限,只允许其可以读取和执行运 ...
- 如何删除一个CSDN上自己上传的资源
原文地址:http://www.xuebuyuan.com/1875216.html 昨天晚上进行测试,上传了一个压缩包和大家分享,测试完成后,为了不想给被测试的公司造成伤害,决定把上传的包删除,结果 ...
- Oracle 常用函数备查
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...
- Java中获取资源文件的方法总结
这里总结3中方法获取资源文件的 ServletContext Class ClassLoader 文件的位置 1. ServletContext public void doGet(HttpServl ...
- [Ubuntu] APT - Advanced Packaging Tool 简明指南
Advanced Packaging Tool,一般简称为apt,是Debian GNU/Linux distribution及其变体版本中与核心库一道处理软件的安装和卸载. Ubuntu是Debia ...
- 【Spring源码分析系列】启动component-scan类扫描加载过程
原文地址:http://blog.csdn.net/xieyuooo/article/details/9089441/ 在spring 3.0以上大家都一般会配置一个Servelet,如下所示: &l ...