【BestCoder Round #79 (div.2)】HDU5660jrMz and angles
来源:互联网 发布:linux搭建php运行环境 编辑:程序博客网 时间:2024/06/04 20:59
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5660
问题描述
jrMz有两种角,第一种角都是正n边形的内角,第二种角都是正m边形的内角。jrMz想选出其中一些,某种角可以选多个或一个都不选,使得选出的所有角的度数之和恰好为360度。jrMz想知道这是否可能实现。
输入描述
有多组测试数据,第一行一个整数(1≤T≤10),表示测试数据的组数。对于每组测试数据,仅一行,两个整数n,m(3≤n,m≤100),之间有一个空格隔开。
输出描述
对于每组测试数据,仅一行,一个字符串,若可能实现则为Yes,若不可能实现则为No。
输入样例
34 83 105 8
输出样例
YesYesNo
Hint
第一组数据中,jrMz可以选择1个第一种角和2个第二种角,因为90+135+135=360。第二组数据中,jrMz可以选择6个第一种角,因为6×60=360。第三组数据中,jrMz无法选出一些度数之和为360度的角。
出题人的分析:
不妨令n≤m。
如果n>6,由于所有角都大于120度且小于180度,也就是说,两个角一定不够,而三个角一定过多。因此一定无解;
当n≤6时,如果n=3或n=4或n=6,那么显然只需要正n边形的角就可以了。如果n=5,则已经有一个108度的角。若这种角:不取,则显然仅当m=6时有解;取1个,则还差360−108=252(度),但是没有一个正m边形的内角的度数是252的约数;取2个,则还差360−108×2=144(度),这恰好是正10边形的内角,取3个,则还差360−108×3=36(度),也不可能满足;取大于3个也显然不可能。
因此得到结论:当n和m中至少有一个为3或4或6时,或者当n和m中一个等于5另一个等于10时,有解,否则无解,时间复杂度为
O(T)。
代码:
#include<iostream>#include<cmath>#include<algorithm>#include<cstring>using namespace std;int n,m;int main(){ int t; cin>>t; while(t--){ cin>>n>>m; double angle1=180-360/n; double angle2=180-360/m; int flag=0; for(int i=0;i<100;i++){ for(int j=0;j<100;j++){ if(fabs(angle1*i+angle2*j-360.0)<=1e-7){ // 还sb的考虑了可能出现;小数的情况; flag=1; break; } } if(flag) break; } if(flag) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0;}
0 0
- 【BestCoder Round #79 (div.2)】HDU5660jrMz and angles
- bestcoder Round #79 (div.2)jrMz and angles
- BestCoder Round #79 (div.2)-jrMz and angles,,暴力求解~
- BestCoder Round #79 1001/hdu 5660 jrMz and angles
- BestCoder Round #79 (div.2) 1002 Claris and XOR
- BestCoder Round #79 (div.1) Claris and XOR 题解。。。
- BestCoder Round #11 (Div. 2) Argestes and Sequence (hdu 5057)
- BestCoder Round #11 (Div. 2)--Bob and math problem
- BestCoder Round #52 (div.2) 1001 Victor and Machine
- BestCoder Round #52 (div.2) Victor and Machine
- Victor and Machine----(BestCoder Round #52 (div.2))
- hdu5463 Clarke and minecraft(BestCoder Round #56 (div.2) )
- BestCoder Round #56 (div.2)(Clarke and minecraft)
- BestCoder Round #56 (div.2)(Clarke and problem)
- BestCoder Round #56 (div.2) HDU5463 Clarke and minecraft
- hdu 5464 Clarke and problem (BestCoder Round #56 (div.2))
- BestCoder Round #52 (div.2)HDU5417 Victor and Machine
- BestCoder Round #56 (div.2) HDU5463 Clarke and minecraft
- 在配置spring配置文件时报错,解决办法
- 从有序数组中查找某个值 low_bound
- HDU 1021
- Android异步编程
- div中使图片垂直居中
- 【BestCoder Round #79 (div.2)】HDU5660jrMz and angles
- 基于platform总线的ok6410 LED 驱动
- explicit关键字的作用
- MySQL 学习笔记(5)MySQL常用函数汇总
- 第一回认识try catch
- JNI 开发笔记 - 数据类型
- 对vb感受(下)
- [Clean Code] Chapter 6: 数据结构 vs 对象!
- 每个程序员都会犯的十个错误