【NOJ1130】【算法实验三】polygon
1130.polygon
时限:1000ms 内存限制:10000K 总时限:3000ms
描述
在一个周长为10000的圆上等距分布着n个点,即这n个点是一个正n边形的顶点。现在要另加m个点到圆上,新加的m个点可以任意选择位置(可以与原有的点重合)。然后将这n+m个点中的一些点延圆周移动,最终使n+m个点均匀分布,即在一个正n+m边形的顶点上。输出最小总移动距离。
输入
输入两个整数 n, m。 (2≤n≤1000, 1≤m≤1000).
输出
输出最小总移动距离,保留4位小数。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;int main()
{int m,n;double p; //位置double len; //总移动距离while(cin>>n){cin>>m;len=0; //初始化for(int i=0; i<n; i++) //遍历每个需要移动的点{p=(double)i/n*(n+m); //计算每个点的原横坐标len+=fabs((int)(p+0.5)-p); //取p的小数部分进行累加,得总移动距离//小数部分=移动距离=新横坐标-原横坐标}len=(double)len/(m+n)*10000; //把总移动距离按比例换算成弧长printf("%.4f\n",len);}return 0;
}
【后记】
1.一堆套路广搜中蹦出来一道这个题,着实令我伤透脑筋,网上的代码简短精悍,犹如天书,琢磨好久终于懂得。用文字说不明白,放上自己画的讲解图,请各位配合代码注释食用~
![](/assets/blank.gif)
【NOJ1130】【算法实验三】polygon相关推荐
- 算法实验三 【电子老鼠闯迷宫】分支限界
算法实验三 [电子老鼠闯迷宫]分支限界 1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元 ...
- 【NOJ1571】【算法实验三】【分支限界法】八数码
1571.八数码 时限:5000ms 内存限制:20000K 总时限:10000ms 描述 在九宫格里放在1到8共8个数字还有一个是空格,与空格相邻的数字可以移动到空格的位置,问给定的状态最少需要几 ...
- 【NOJ1326】【算法实验三】推箱子
1326.推箱子 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 绝大多数人都玩过推箱子的游戏,控制一个人将箱子推动到目标位置即获得胜利.现请你编写一个程序,判断将箱子推到目标 ...
- 【NOJ1325】【算法实验三】【分支限界法】特殊的二阶魔方
1325.特殊的二阶魔方 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 魔方大家应该都玩过.现在有一个特殊的二阶魔方,它只有一面是白色,其余五个面全是黑色.玩这个魔方当然也 ...
- 算法实验三 Problem B电子老鼠闯迷宫
Problem B 电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建 ...
- NOJ1042——算法实验三——电子老鼠闯迷宫
电子老鼠闯迷宫 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路.电子老鼠可以在路上向上.下.左.右行走,每一步走一个格子.现给定一 ...
- 【NOJ1042】【算法实验三】电子老鼠闯迷宫
1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部 ...
- 【NOJ1147】【算法实验三】木乃伊迷宫
1147.木乃伊迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 木乃伊地下宫殿是一个6行6列的迷宫.作为敢到木乃伊地下宫殿里去探险的你,有没有跟木乃伊抓迷藏的心理准备呵! ...
- 【算法实验三】(BFS-分支限界)【木乃伊迷宫】
1147.木乃伊迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 木乃伊地下宫殿是一个6行6列的迷宫.作为敢到木乃伊地下宫殿里去探险的你,有没有跟木乃伊抓迷藏的心理准备呵 ...
最新文章
- 【转】浅谈.net remoting 与webservice
- 非阻塞,send后马上close消息能成功发出去吗
- Executor家族的辨析
- md5生成一个加盐程序c语言,MD5在编程中的实现 (C语言)
- 用matlab录制声音然后进行读取和播放
- java九九成表发_用EXCEL可多种办法生成99乘法表
- 关于值类型和引用 类型
- C++基础巩固getchar 和 getch区别
- 前端必会的Vue项目请求方法模块化的高度封装操作案例说明——getData()方法封装实例,告别多次重复调用,解决页面代码冗余
- U盘恢复软件,U盘格式化后怎么恢复数据
- 在vpp中做nat实验
- 给女朋友写的简单的公众号推送信息程序
- ABR算法研究综述 | A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP(IEEE COMST‘18)阅读笔记
- Arch Linux 硬盘引导-联网安装
- 【Oracle】基础语句
- struts2优点总结
- html链接找不到,在此服务器上找不到请求的URL/public_html/
- 计算机实现原理专题--逻辑门
- 设备接入交换机后无法ping通问题处理
- HR202湿敏电阻总结与程序整理
热门文章
- ENC1编码器插USB-4G卡托后如何获取IP并通过无线方式访问后台
- Rational Software Architect 的介绍和基础教程
- VM2230 asdebug.js:xxx:端口不在以下 request 合法域名列表中
- 微型计算机主板最新发展,三镇学子齐瞩目——精英主板 Intel915P平台新技术体验营首选武汉...
- C# break和continue用法
- UE4中Pak文件的读取规则
- WRFDA教程:3DVar同化卫星辐射率资料
- 域名访问Winmail邮件服务器
- 应用程序连接hbase报错:java.net.SocketTimeoutException: callTimeout=60000
- “跳槽”一词的来历竟然是这样!汗