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个数字.求出这个圈圈里剩下的最后一个数字 ...
随机推荐
- 基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
这篇文章主要介绍了基于JavaScript判断浏览器到底是关闭还是刷新(超准确)的相关资料,需要的朋友可以参考下 本文是小编总结的一些核心内容,个人感觉对大家有所帮助,具体内容请看下文: 页面加载时只 ...
- nuget类库xml说明以及类库说明文件添加到包中
1.nuget包制作添加xml操作:项目右键属性,生成配置输出xml文档文件,debug,release都配置一下,项目右键 yesway.redis.csproj 文件增加: 添加类库说明文件con ...
- SpringBoot------注解把配置文件自动映射到属性和实体类
1.映射到属性 package top.ytheng.demo.controller; import org.springframework.beans.factory.annotation.Valu ...
- Apache性能优化总结
1.介绍 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块),MPM是Apache的核心,它的作用是管理网络连接.调度请求.Apache2.0中MP ...
- 8 -- 深入使用Spring -- 2...2 指定Bean的作用域
8.2.2 指定Bean的作用域 当使用XML 配置方式来配置Bean实例时,可以通过scope来指定Bean实例的作用域,没有指定scope属性的Bean实例作用域默认是singleton. 当采用 ...
- Bugly最简单的配置方法
1,注册Bugly帐号 2.项目 build.gradle 中配置 compile 'com.tencent.bugly:crashreport:latest.release'//其中latest.r ...
- flask获取传入参数的两种方式
#coding=utf-8 from flask import Flask from flask import request app = Flask(__name__) @app.route(&qu ...
- Lua中的注释
Lua中有两种注释:行注释和块注释.行注释以“--”开头,可以注释这一行后面的内容.块注释以“--[[”开始,以“--]]”结尾,可以注释这个范围内的整个内容:块注释可以注释多行内容.下面是一个示例: ...
- WinPE启动U盘的制作方法与软件下载(通用PE工具箱/老毛桃/大白菜WinPE)
转自:http://blog.sina.com.cn/s/blog_58c380370100cp5x.html 文件大小:39.5M(支持Win7安装,早期的通用PE工具箱,小巧不过几十兆,现在都臃肿 ...
- Geoserver
Geoserver是一个功能齐全,遵循OGC开放标准的开源WFS-T和WMS服务器.利用Geoserver可以把数据作为maps/images来发布(利用WMS来实现)也可以直接发布实际的数据(利用W ...