nyojb 2357
http://acm.nyist.me/JudgeOnline/problem.php?id=2357
2357: 插塔憋憋乐
时间限制: 1 Sec 内存限制: 128 MB
提交: 50 解决: 9
[提交][状态][讨论版]
题目描述
LLM有一个半径为R的基地,他想放一些防御塔,让任何一个敌方单位在进入自己基地的开始就受到防御塔的攻击,由于LLM希望敌人会顶着防御塔的攻击伤害自己,所以他希望任何一个敌人进入自己基地的时候就立刻受到至少两个防御塔的攻击,现在已知防御塔的防御半径为r,为了简化问题,我们假设:
1.如果一个敌人经过两个防御塔的防御的范围相切的点(如图所示),会受到两个防御塔的攻击,这里受到两个防御塔的伤害
2.不需要保证基地内部受到保护,只要保证敌人在进入基地时受到防御塔攻击即可
请问最少需要几个防御塔
输入
每个测试文件少于1000组测试样例
每组测试样例包含两个整数R,r
1<=R,r<=500
输出
输出仅包含一个数字,代表需要的防御塔数量
样例输入
1 1
样例输出
2 最后思路对了可惜还是WA了,一开始根本没看懂题意好吗我以为是只有在交点上才是双倍伤害,其实是在相交的区域内都是,我们只用考虑边界就好了,要想用一个塔覆盖最大的边界,
也就是使得覆盖更大的弧长,显然弦长越大弧长越大,弦长最大就是r,此时可以求出对应的弧长为多少,也就是一个塔的最大覆盖长度。题目要求双倍,但是直接算一圈之后再*2是错误的,
可能有些区域会覆盖超过两次造成浪费,我们应该把这个圈看做是一条线,题目要求转化为覆盖这条线上每个点两次,也就是覆盖双倍长度的这条线上一次即可更优。
#include<bits/stdc++.h>
using namespace std;
double PI=acos(-1.0);
int main()
{
int n,m,i,j,k;
int R,r;
while(cin>>R>>r){
double C=*PI*R;
if(r>=R){puts("");}
else{
double x=*R*asin((double)1.0*r/R);
cout<<(int)(ceil(*C/x))<<endl;
//cout<<(int)(ceil(C/x))*2<<endl;
}
}
return ;
}
nyojb 2357的更多相关文章
- NYOJ 2357: 插塔憋憋乐 贪心
2357: 插塔憋憋乐 时间限制: 1 Sec 内存限制: 128 MB 提交: 82 解决: 18 [提交][状态][讨论版] 题目描述 众所不知,LLM是一位红警3大佬,打的非常厉害,但是曾经 ...
- nyojb 2359 巴什博弈变形
http://acm.nyist.me/JudgeOnline/problem.php?id=2359 2359: 巴什博弈? 时间限制: 1 Sec 内存限制: 30 MB提交: 237 解决: ...
- HTML BOM Browser对象
BOM:Browser Object Model,即浏览器对象模型,提供了独立于内容的.可以与浏览器窗口进行互动的对象结构. Browser对象:指BOM提供的多个对象,包括:Window.Navig ...
- (转) [it-ebooks]电子书列表
[it-ebooks]电子书列表 [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...
- centos 6.4 getmail 收取163 邮件
#CentOS 6.6 64bit 默认yum 源没有getmail rpm包#首先安装EPEL yum 源EPEL(Extra Packages for Enterprise Linux):http ...
- 通用js地址选择器
用js实现通用的地址选择器,省份,城市,地区自动关联更新 点击下面查看详细代码: http://runjs.cn/code/s8sqkhcv 关键地址库代码: var addr_arr = new A ...
- 如何在Windows上从源码编译Chromium (CEF3) 加入mp3支持
一.什么是CEF CEF即Chromium Embeded Framework,由谷歌的开源浏览器项目Chromium扩展而来,可方便地嵌入其它程序中以得到浏览器功能. CEF包括CEF1和CEF3两 ...
- Linux如何搜索查找文件里面内容
在Linux系统当中,如何搜.索查找文件里面的内容呢? 这个应该是系统维护.管理当中遇到最常见的需求.那么下面介绍,总结一下如何搜索.查找文件当中的内容. 搜索.查找文件当中的内容,一般最常用的是gr ...
- 【Jsoup网页解析】
下载链接:http://jsoup.org/download 一.普通的请求方式(不带有cookie) 使用举例: 第一步: Connection conn=Jsoup.connect(url); 第 ...
随机推荐
- Vue中watch的简单应用
Vue.js 有一个方法 watch,它可以用来监测Vue实例上的数据变动. 如果对应一个对象,键是观察表达式,值是对应回调,值也可以是方法名,或者是对象,包含选项. 下面写两个demo,参考demo ...
- 六百字读懂 Git(转)
add by zhj:还是原文 六百字读懂 Git 看着更舒服一些,显示更好 原文:六百字读懂 Git 英文原文:Git in 600 words 译注:来自 Hacker School 的 Mary ...
- SqlProfiler的替代品-ExpressProfiler
可以用来跟踪执行的sql语句.安装SqlServer之后SqlServerManagementStudio自带一个SqlProfiler,但是如果安装的SqlExpress,那就没有了. 项目的主页在 ...
- 学习pyhton需要做哪些准备工作
1:知道python个版本是有差异的 2:既然有差异,那么如何在不同项目不同版本的开发环境; ----------------------------------------------------- ...
- 011-git-将tag推送到远端
1.将tag推送到远端 在使用TortoiseGit过程中,push推送过程中,选择include tag,远端就有次分支.
- 微服务架构~BFF和网关是如何演化出来的
介绍 BFF(Backend for Frontend)和网关Gateway是微服务架构中的两个重要概念,这两个概念相对比较新,有些开发人员甚至是架构师都不甚理解. 本文用假想的公司案例+图示的方式, ...
- 转:MFC中屏蔽ESC和回车关闭对话框
解决方法是在 CDialog::PreTranslateMessage() 的重载函数中将ESC和回车按键的消息处理掉. 直接上代码: CResultCollectorDlg::PreTranslat ...
- VC 取消warning
#pragma warning (disable:4200) 4200是指具体哪个warning
- Adding Flexcan driver support on Kernel
Adding Flexcan driver support on Kernel On kernel menuconfig, add the following items: [*] Networkin ...
- DNS 安装配置
DNS 安装配置 实验环境 一台主机:Linux Centos 6.5 32位 安装包: DNS服务:bind.i686 DNS测试工具:bind-utils DNS 服务安装 1.yum安装DNS服 ...