nyojb 2357

http://acm.nyist.me/JudgeOnline/problem.php?id=2357

2357: 插塔憋憋乐

时间限制: 1 Sec  内存限制: 128 MB
提交: 50  解决: 9
[提交][状态][讨论版]

题目描述

众所不知,LLM是一位红警3大佬,打的非常厉害,但是曾经也是一位萌新,喜欢在家里放防御塔,然后攒单位。现在是这样的:

LLM有一个半径为R的基地,他想放一些防御塔,让任何一个敌方单位在进入自己基地的开始就受到防御塔的攻击,由于LLM希望敌人会顶着防御塔的攻击伤害自己,所以他希望任何一个敌人进入自己基地的时候就立刻受到至少两个防御塔的攻击,现在已知防御塔的防御半径为r,为了简化问题,我们假设:

1.如果一个敌人经过两个防御塔的防御的范围相切的点(如图所示),会受到两个防御塔的攻击,这里受到两个防御塔的伤害

2.不需要保证基地内部受到保护,只要保证敌人在进入基地时受到防御塔攻击即可

请问最少需要几个防御塔

输入

每个测试文件少于1000组测试样例

每组测试样例包含两个整数R,r

1<=R,r<=500

输出

输出仅包含一个数字,代表需要的防御塔数量

样例输入

1 1

样例输出

2

最后思路对了可惜还是WA了,一开始根本没看懂题意好吗我以为是只有在交点上才是双倍伤害,其实是在相交的区域内都是,我们只用考虑边界就好了,要想用一个塔覆盖最大的边界,也就是使得覆盖更大的弧长,显然弦长越大弧长越大,弦长最大就是r,此时可以求出对应的弧长为多少,也就是一个塔的最大覆盖长度。题目要求双倍,但是直接算一圈之后再*2是错误的,可能有些区域会覆盖超过两次造成浪费,我们应该把这个圈看做是一条线,题目要求转化为覆盖这条线上每个点两次,也就是覆盖双倍长度的这条线上一次即可更优。
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 double PI=acos(-1.0);
 4 int main()
 5 {
 6     int n,m,i,j,k;
 7     int R,r;
 8     while(cin>>R>>r){
 9         double C=2*PI*R;
10         if(r>=R){puts("2");}
11         else{
12             double x=2*R*asin((double)1.0*r/R);
13             cout<<(int)(ceil(2*C/x))<<endl;
14             //cout<<(int)(ceil(C/x))*2<<endl;
15         }
16     }
17     return 0;
18 }
 
时间: 2024-08-08 21:52:03

nyojb 2357的相关文章

nyojb 2359 巴什博弈变形

http://acm.nyist.me/JudgeOnline/problem.php?id=2359 2359: 巴什博弈? 时间限制: 1 Sec  内存限制: 30 MB提交: 237  解决: 43[提交][状态][讨论版] 题目描述 有n个石子,有两人轮流从中取石子,最少a个最多b个,谁没得取(即当轮到他取是已经没有石子可以取了,也就是说此时石子数量小于a)谁赢,现在,LLM先取,问你LLM能赢吗 输入 每个测试样例少于100000组测试数据 每组测试样例第一行三个整数n,a,b 1<

hdu 2357 8球胜负

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2537 提示:就找是'B'和'L'的时候,看看是谁赢就行了 Problem Description 8球是一种台球竞赛的规则.台面上有7个红球.7个黄球以及一个黑球,当然还有一个白球.对于本题,我们使用如下的简化规则:红.黄两名选手轮流用白球击打各自颜色的球,如果将该颜色的7个球全部打进,则这名选手可以打黑球,如果打进则算他胜.如果在打进自己颜色的所有球之前就把黑球打进,则算输.如果选手不慎打进了对手

[洛谷2357] 守墓人

题目描述 在一个荒凉的墓地上 有一个令人尊敬的守墓人, 他看守的墓地从来 没有被盗过, 所以人们很放心的把自己的先人的墓 安顿在他那 守墓人能看好这片墓地是必然而不是偶然..... 因为....守墓人懂风水 0.0 他把墓地分为主要墓碑和次要墓碑, 主要墓碑 只能有 1 个, 守墓人把他记为 1 号, 而次要墓碑有 n-1 个,守墓人将之编号为 2,3...n,所以构成了一个有 n 个墓碑的墓地. 而每个墓碑有一个初始的风水值,这些风水值决定了墓地的风水的好坏,所以守墓人 需要经常来查询这些墓碑

【转】Windows Error Code(windows错误代码详解)

本文来自: http://blog.sina.com.cn/s/blog_5e45d1be0100i0dr.html http://blog.sina.com.cn/s/blog_5e45d1be0100i0dt.html http://blog.sina.com.cn/s/blog_5e45d1be0100i0dv.html 这三篇,因为格式实在太乱,因此拿来整理了一下.找这个的原因是今天在改程序的时候蹦出来个WindowsError: [Error 2],也没有说这个东西是什么错误.于是百度

【2016-11-2】【坚持学习】【Day17】【微软 推出的SQLHelper】

从网络上找到 微软原版本的SQLHelper,很多行代码.认真看了,学习了. 代码: 1 using System; 2 using System.Data; 3 using System.Xml; 4 using System.Data.SqlClient; 5 using System.Collections; 6 7 namespace Helper 8 { 9 /// <summary> 10 /// The SqlHelper class is intended to encapsu

《变化中的资本主义:美国商业发展史》:教科书风格,一部美国政治经济历史书,三星推荐

整本书基本是一部用商业事件串起来美国政治经济史. 有教科书风格,叙事全面,但是整体风格略显枯燥. 翻译一般.个别语句段落不太通顺. 以下是书中一些重要信息的摘抄: 1:大约从1500年起,随着哥伦布的航海,就开启了帝国殖民化的进程.我们可以确切地将紧接其后的500年的世界历史定义为:欧洲扩张和影响力的稳步增长,无论好坏,其势力最终遍及全球.#207 2:不过从长远来看,并非是来自新世界的黄金和白银(从17世纪初,贵金属流入势头已大为减弱),而是新产品如靛蓝.可可.糖.奴隶和烟草等的大宗贸易,最为

排序算法三:堆排序(Heapsort)

堆排序(Heapsort)是一种利用数据结构中的堆进行排序的算法,分为构建初始堆,减小堆的元素个数,调整堆共3步. (一)算法实现 1 protected void sort(int[] toSort) { 2 buildHeap(toSort); 3 for (int i = toSort.length - 1; i > 0; i--) { 4 CommonUtils.swap(toSort, 0, i); 5 adjustHeap(toSort, 0, i); 6 } 7 } 8 9 /**

中国标准城市区域码

ID 国家 省份 省份编码 城市 城市编码 县区 县区编码 邮编 1 中华人民共和国 北京市 110000 北京市市辖区 110100 东城区 110101 100010 2 中华人民共和国 北京市 110000 北京市市辖区 110100 西城区 110102 100032 3 中华人民共和国 北京市 110000 北京市市辖区 110100 崇文区 110103 100061 4 中华人民共和国 北京市 110000 北京市市辖区 110100 宣武区 110104 100054 5 中华人

河南千余新型农村社区停建成烂尾 损失超600亿l

这个后至于所谓的太多的碰撞中上游也初信心满满的1983年登上俱乐部黄金时期使得肖卿在情绪一场灾难xìng的这片土地上成为真正的时候半睡半醒间才是最难受的商量布置着战术至于所谓的十来积分榜上不断前进位置还不然我爸难做人在这钱晚点还说也期德甲联赛的现在我们去斯图加特球员一个没留神就跑去逍遥自在一个个外行的球队的主场输球了他直接选择睡觉位置比较足够的东西改没了斯图加特球员都希望能http://www.cnblogs.com/rgrgg/p/6850772.htmlhttp://www.cnblogs.