19_05_01校内训练[polygon]

题意

把一个边长为1的正n边形放到一个正m边形中,要求m边形完全覆盖n边形,可以有交点,并且中心重合。求正m边形的最小边长,至少精确到6位。要求logn计算。


 

思考

先考虑m|n的情况。

我们知道,正m边形的边长与可行区域(即可以完全覆盖的那些角度)形成单射,当且仅当所有可行区域都成为可数的点时,答案最优。(可以理解为再缩小一点就无解了)

这样不难证明,把正n边形的几条边刚好卡在正m边形上是最优的。如n=8,m=4:

这时正m边形的边长是容易计算的。相信大家都会初中数学。

这样再考虑一般情况。由于是中心重合,正n边形旋转2π/m度后仍然是能被覆盖的。

在所有可行的旋转过程中,将最外圈的点连起来,仍然形成一个正多边形,且边数为lcm(n,m)。

例如,n=4,m=6:

用紫线围出来的正12边形即为正方形得到的结果。

至于正确性,在于所有的可行区域都是单点。

这样一来,就可以直接转化为上一个问题。公式认真推即可。


 

代码

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long int ll;
 4 const double pi=acos(-1);
 5 ll n,m;
 6 ll gcd(ll x,ll y)
 7 {
 8     return x%y==0?y:gcd(y,x%y);
 9 }
10 ll lcm(ll x,ll y)
11 {
12     return x/gcd(x,y)*y;
13 }
14 double solve(ll n,ll m)
15 {
16     double len=1/(2*tan(pi/n));
17     double th=(n/m)*pi/n;
18     return tan(th)*len*2;
19 }
20 int main()
21 {
22     ios::sync_with_stdio(false);
23     cin>>n>>m;
24     double len=1/(2*sin(pi/n));
25     n=lcm(n,m);
26     double a=sin(pi/n)*len*2;
27     cout<<fixed<<setprecision(9)<<solve(n,m)*a<<endl;
28     return 0;
29 }
View Code

 

转载于:https://www.cnblogs.com/GreenDuck/p/10799543.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]numpy中的np.max 与 np.maximum区别

转自&#xff1a;https://blog.csdn.net/lanchunhui/article/details/52700895 转载于:https://www.cnblogs.com/xianhan/p/10609319.html

win10 php7+apache2.4的配置以及遇到的问题及解决

首先进入PHP官网下载php7的版本,我下的是PHP7.1.28,在PHP的下载页面注意划红线和绿线的地方(我画的) 1.画了红线的意思是请使用由apache lounge提供的编译文件,也就是点进蓝色Apache lounge这里下载. 2.画了绿色的线的意思是用Apache的话你必须使用Thread Safe(线程安全)的PHP…

AI一周热闻:华为豪掷3.3亿剑桥买地,自建光芯片工厂;比特大陆IPO失败,组织架构调整...

导读 华为豪掷3.3亿剑桥买地&#xff0c;自建光芯片工厂苹果春季发布会无硬件发布&#xff0c;转型之心迫切比特大陆IPO失败&#xff0c;组织架构调整&#xff0c;王海超任CEO特斯拉起诉小鹏汽车员工窃取商业机密英伟达发布GauGAN&#xff0c;线条色块秒变逼真图像用机器学习防…

虚拟环境vitualenv的使用

Python3开发之虚拟环境virtualenv与virtualenvwrapper 在使用 Python 开发的过程中&#xff0c;工程一多&#xff0c;难免会碰到不同的工程依赖不同版本的库的问题&#xff1b; 亦或者是在开发过程中不想让物理环境里充斥各种各样的库&#xff0c;引发未来的依赖灾难。 此时&am…

银行各类理财收益渐涨 各类宝钱景尚不明朗

这个春天&#xff0c;投资似乎进入了一个好事多磨的阶段。央行一反先前支持的态度&#xff0c;开始对互联网理财念起了“紧箍咒”。一时间&#xff0c;各种“宝”的命运变得扑朔迷离起来。尽管各种“宝”声明&#xff1a;不受央行政策影响。而投资者内心的担忧&#xff0c;恐怕…

PHP全栈学习笔记27

数组概述&#xff0c;类型&#xff0c;声明&#xff0c;遍历&#xff0c;输出&#xff0c;获取数组中最后一个元素&#xff0c;删除重复数组&#xff0c;获取数组中指定元素的键值&#xff0c;排序&#xff0c;将数组中的元素合成字符串。 数组概述&#xff0c;数组是存储&…

mac地址和ip地址的区别(转)

先纠正一下几个比较模糊的概念&#xff1a;“MAC地址表储存IP地址”&#xff0c; MAC地址表是二层设备中存储“MAC地址”和“转发端口”映射关系的表&#xff0c;并不直接存储IP地址。 “路由器根据MAC地址来选择路由进行数据发送”&#xff0c;对于三层设备的三层端口来说&…

Windows下多个JDK版本的切换方法

问题 因我之前在window中无法命令行输入&#xff0c;后来发现是电脑中存在多个JDK&#xff0c;导致设置混乱。于是&#xff0c;我继续深入研究了当电脑存在多个JDK的情况下&#xff0c;如何设置想要的JDK版本。步骤 1.更改环境变量 进入环境变量的配置界面&#xff0c;将JAVA_H…

哈哈哈,只有程序员才懂的黑色幽默 ... ...

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 也是机缘巧合&#xff0c;让我一个之前工作从未接触过程序员的人&#xff0c;现在成天和程序员打交道&#xff0c;要知道&#xff0c;不…

ONVIF Device Manager修改设备密码

这个onvif工具可以实时监控画面&#xff0c;使用起来简单方便 左侧一栏是设备信息&#xff0c;中间上半部分是设备配置设置&#xff0c;下半部分是图像预览配置设置。 修改密码可通过该工具&#xff0c;点击User management后选择用户类型并且修改密码。

mysql 数据库函数入门

转载于:https://www.cnblogs.com/hwgok/p/10816922.html

Hadoop localhost: frankxulei@localhost: Permission denied (publickey,password)

Hadoop启动HDFS进程的时候报错&#xff0c;提示权限不够&#xff0c;具体信息如图所示&#xff1a;localhost: frankxuleilocalhost: Permission denied (publickey,password). frankxuleiubuntu:/usr/local/hadoop$ sbin/start-all.shWARNING: Attempting to start all Apache…

几个sql案例

第一题 select Case When t.flag>0 Then "T" Else "F" End from (SELECT instr(TableA.col1,TableA.col2) as flag from TableA) t第三题 select s.* from student s ,(SELECT name,MAX(score) m from student GROUP BY name) t where s.name t.n…

京东购物在微信等场景下的算法应用实践

本文根据京东微信手Q业务部马老师在京东\u0026amp;DataFun Talk算法架构系列活动中所分享的《京东购物在微信等场景下的算法应用实践》编辑整理而成&#xff0c;在未改变原意的基础上稍做修改。此次分享的是以WQ&#xff08;微信手Q&#xff09;购物智能推荐系统介绍智能推荐算…

docker save 与 docker export 的区别

缘起 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 docker save和docker export都能导出镜像包&#xff0c;咋看起来区别似乎不大。本文就针对这个问题&#xff0c;试图搞清楚docker…

PS图片后期之超简易造光调色方法

技法是死的&#xff0c;而人是活的&#xff0c;说的简单一点就是我们要学会开拓一下思维&#xff0c;调色的方法并不是只有【可选颜色】而已。 在修片之前&#xff0c;我们先要学会分析&#xff0c;在拍摄这一组照片时我希望有一种夕阳的光穿透晒在脸庞的感觉&#xff0c;而左边…

在 idea 中为类和方法自动生成注释

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 项目规范中有一项常见的要求&#xff0c;在类级和方法级注释里写上创建者和创建时间&#xff0c;在方法级注释里写上创建者和维护者&…

2进制 , 8进制 , 10进制 , 16进制 , 介绍 及 相互转换 及 快速转换

为什么要使用进制数 数据在计算机中的表示&#xff0c;最终以二进制的形式存在 , 就是各种 <黑客帝国>电影中那些 0101010… 的数字 ; 我们操作计算机 , 实际 就是 使用 程序 和 软件 在 计算机上 各种读写数据, 如果我们直接操作二进制的话 , 面对这么长的数进行思考或…

python脚本调用外部程序的若干种方式以及利弊

脚本执行外部程序的常用几种方式&#xff1a; # os.popen(path)# subprocess.run(cmd,shellTrue)# subprocess.check_call(cmd,shell True)# os.system(command)# win32api.ShellExecute(0, open, path, , , 0) os.popen(path) 和 os.system(command) 这两种执行的效果是差不多…

藏经阁计划发布一年,阿里知识引擎有哪些技术突破?

为什么80%的码农都做不了架构师&#xff1f;>>> 阿里妹导读&#xff1a;2018年4月阿里巴巴业务平台事业部——知识图谱团队联合清华大学、浙江大学、中科院自动化所、中科院软件所、苏州大学等五家机构&#xff0c;联合发布藏经阁&#xff08;知识引擎&#xff09;…