2015百度之星资格赛1004
来源:互联网 发布:短期java培训机构 编辑:程序博客网 时间:2024/05/23 21:36
题目名称:放盘子
题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=584&pid=1004
Hint中已经告诉我们赢的策略了,那么只要先手能放下一个盘子,那么就赢了。
那么,怎么确定能不能放下一个盘子呢?So easy!只要判断边心距是否大于等于盘子半径就行了。
那么问题来了,正多边形的边心距怎么求呢?
百度百科:http://baike.baidu.com/link?url=LCKIe-KYHPREXHkigc5gZN7q1oM_4zard5vA8vRGtE-mL74KBqgBi0K4naRoWaaGmwzK__BFtrb2yK4E4XasM_
(然而我觉得这个百科写得并不好)
公式:边心距=边长的一半除以tan(PI/边数),也就是下面的b = a/2/tan(PI/n)。(PI是圆周率)
代码如下:
#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<ctime>#include<cmath>#include<algorithm>#include<map>#include<set>#include<vector>#include<iostream>using namespace std;const double PI =4*atan(1.0);const double eps = 1e-6;int main(){ int n,t; double r,a; scanf("%d",&t); for(int cc=1;cc<=t;cc++) { scanf("%d %lf %lf",&n,&a,&r); printf("Case #%d:\n",cc); double b = a/2/tan(PI/n); if(b-r>=-eps) printf("Give me a kiss!\n"); else printf("I want to kiss you!\n"); }return 0;}
*转载请注明出处
0 0
- 2015百度之星资格赛1004
- 2015百度之星资格赛1004
- 2015百度之星资格赛
- 百度之星资格赛
- 2015百度之星资格赛1004放盘子
- 2015百度之星资格赛1004_放盘子
- 2015百度之星资格赛 放盘子 1004
- 2014百度之星资格赛1004
- 百度之星资格赛 1004 Labyrinth
- 百度之星2016资格赛 1004
- 2016百度之星资格赛1001-1004
- 百度之星2015资格赛#1002
- 百度之星资格赛2015IP聚合
- 2015百度之星资格赛1003
- 2015百度之星资格赛1001
- 百度之星2015资格赛#1001
- 百度之星2015资格赛#1003
- 2015百度之星资格赛1002
- jsmy97时间控件,时间范围选择
- c使用mysql常用的api
- 关于错排公式
- window环境下amr转MP3
- 深入浅出:Linux设备驱动之异步通知和异步I/O
- 2015百度之星资格赛1004
- RHEL7中ISCSI配置
- 相似图片搜索的原理(二)
- C# StringBuilder与String的区别
- docker镜像ushios/lamp-ubuntu的使用总结
- [百度之星]资格赛:IP聚合
- Hadoop之——以1.x版本和0.x版本分别实现单词统计功能
- 相似图片搜索的原理
- 【2015/5/25】阶段性总结+局域网的IP分配