博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACM学习历程—BestCoder 2015百度之星资格赛1004 放盘子(策略 && 计算几何)
阅读量:4334 次
发布时间:2019-06-07

本文共 1272 字,大约阅读时间需要 4 分钟。

Problem Description

小度熊喜欢恶作剧。今天他向来访者们提出一个恶俗的游戏。他和来访者们轮流往一个正多边形内放盘子。最后放盘子的是获胜者,会赢得失败者的一个吻。玩了两次以后,小度熊发现来访者们都知道游戏的必胜策略。现在小度熊永远是先手,他想知道他是否能获胜。

注意盘子不能相交也不能和多边形相交也不能放在多边形外。就是说,盘子内的点不能在多边形外或者别的盘子内。

Input

第一行一个整数

,表示
组数据。每组数据包含
个数n,a,r(4n100,0<a<1000,0<r<1000

是偶数,代表多边形的边数,
代表正多边形的边长,
代表盘子的半径。

Output

对于每组数据,先输出一行

Case #i:

然后输出结果.如果小度熊获胜,输出”Give me a kiss!” 否则输出”I want to kiss you!”

Sample Input
24 50 2.54 5.5 3
Sample Output
Case #1:Give me a kiss!Case #2:I want to kiss you!
Hint
在第一组样例中,小度熊先在多边形中间放一个盘子,接下来无论来访者怎么放,小度熊都根据多边形中心与来访者的盘子对称着放就能获胜。

 

在Hint已经说明。

只需要首先在中心放盘子,然后来访者无论怎么放,小度熊自然可以对称来放。

所以只要第一个能放下是必胜的。

第一个判断就是判断中心点到多边形边的距离和盘子半径进行比较。

 

代码:

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LL long longusing namespace std;const double PI = acos(-1);int main(){ //freopen("test.in", "r", stdin); int T, n; double a, r; scanf("%d", &T); for (int times = 1; times <= T; ++times) { printf("Case #%d:\n", times); scanf("%d%lf%lf", &n, &a, &r); if (a/2/tan(PI/n) <= r) printf("I want to kiss you!\n"); else printf("Give me a kiss!\n"); } return 0;}

 

转载于:https://www.cnblogs.com/andyqsmart/p/4528888.html

你可能感兴趣的文章
JS获取第二个横杠后面的内容
查看>>
excel 导入MYSQL
查看>>
P3038 [USACO11DEC]牧草种植Grass Planting
查看>>
23 个最有吸引力和免费的Flash图像轮廓
查看>>
给label添加点击事件
查看>>
eterna 第一个案例
查看>>
新部署到服务器 报 The requested URL /home/profession was not found on this server. 错误
查看>>
hadoop从非HA转到NAMENODE HA时需要注意的一个问题
查看>>
KnockoutJs学习笔记(十一)
查看>>
访问修饰符public、private、protect、default范围
查看>>
jQuery实现布局高宽自适应
查看>>
《学习》10函数的建立与使用
查看>>
去除TB二合一页面弹窗
查看>>
托管和非托管的区别。
查看>>
win7与VMware ubuntu虚拟机实现文件共享(最后一定要装open-vm-dkms插件)
查看>>
Java 集合知识总结(三)
查看>>
文件类型解析漏洞防御与攻击(PHP)
查看>>
初步认识AutoMapper转载 https://www.cnblogs.com/fred-bao/p/5700776.html
查看>>
条件与循环
查看>>
nodejs unit test related----faker-cli, sinonjs, mock/stub
查看>>