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.一堆套路广搜中蹦出来一道这个题,着实令我伤透脑筋,网上的代码简短精悍,犹如天书,琢磨好久终于懂得。用文字说不明白,放上自己画的讲解图,请各位配合代码注释食用~

自画拙作不成敬意

【NOJ1130】【算法实验三】polygon相关推荐

  1. 算法实验三 【电子老鼠闯迷宫】分支限界

    算法实验三 [电子老鼠闯迷宫]分支限界 1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元 ...

  2. 【NOJ1571】【算法实验三】【分支限界法】八数码

    1571.八数码 时限:5000ms 内存限制:20000K  总时限:10000ms 描述 在九宫格里放在1到8共8个数字还有一个是空格,与空格相邻的数字可以移动到空格的位置,问给定的状态最少需要几 ...

  3. 【NOJ1326】【算法实验三】推箱子

    1326.推箱子 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 绝大多数人都玩过推箱子的游戏,控制一个人将箱子推动到目标位置即获得胜利.现请你编写一个程序,判断将箱子推到目标 ...

  4. 【NOJ1325】【算法实验三】【分支限界法】特殊的二阶魔方

    1325.特殊的二阶魔方 时限:1000ms 内存限制:10000K  总时限:3000ms 描述 魔方大家应该都玩过.现在有一个特殊的二阶魔方,它只有一面是白色,其余五个面全是黑色.玩这个魔方当然也 ...

  5. 算法实验三 Problem B电子老鼠闯迷宫

    Problem B 电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建 ...

  6. NOJ1042——算法实验三——电子老鼠闯迷宫

    电子老鼠闯迷宫 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路.电子老鼠可以在路上向上.下.左.右行走,每一步走一个格子.现给定一 ...

  7. 【NOJ1042】【算法实验三】电子老鼠闯迷宫

    1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部 ...

  8. 【NOJ1147】【算法实验三】木乃伊迷宫

    1147.木乃伊迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 木乃伊地下宫殿是一个6行6列的迷宫.作为敢到木乃伊地下宫殿里去探险的你,有没有跟木乃伊抓迷藏的心理准备呵! ...

  9. 【算法实验三】(BFS-分支限界)【木乃伊迷宫】

    1147.木乃伊迷宫 时限:1000ms 内存限制:10000K  总时限:3000ms 描述 木乃伊地下宫殿是一个6行6列的迷宫.作为敢到木乃伊地下宫殿里去探险的你,有没有跟木乃伊抓迷藏的心理准备呵 ...

最新文章

  1. 【转】浅谈.net remoting 与webservice
  2. 非阻塞,send后马上close消息能成功发出去吗
  3. Executor家族的辨析
  4. md5生成一个加盐程序c语言,MD5在编程中的实现 (C语言)
  5. 用matlab录制声音然后进行读取和播放
  6. java九九成表发_用EXCEL可多种办法生成99乘法表
  7. 关于值类型和引用 类型
  8. C++基础巩固getchar 和 getch区别
  9. 前端必会的Vue项目请求方法模块化的高度封装操作案例说明——getData()方法封装实例,告别多次重复调用,解决页面代码冗余
  10. U盘恢复软件,U盘格式化后怎么恢复数据
  11. 在vpp中做nat实验
  12. 给女朋友写的简单的公众号推送信息程序
  13. ABR算法研究综述 | A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP(IEEE COMST‘18)阅读笔记
  14. Arch Linux 硬盘引导-联网安装
  15. 【Oracle】基础语句
  16. struts2优点总结
  17. html链接找不到,在此服务器上找不到请求的URL/public_html/
  18. 计算机实现原理专题--逻辑门
  19. 设备接入交换机后无法ping通问题处理
  20. HR202湿敏电阻总结与程序整理

热门文章

  1. ENC1编码器插USB-4G卡托后如何获取IP并通过无线方式访问后台
  2. Rational Software Architect 的介绍和基础教程
  3. VM2230 asdebug.js:xxx:端口不在以下 request 合法域名列表中
  4. 微型计算机主板最新发展,三镇学子齐瞩目——精英主板 Intel915P平台新技术体验营首选武汉...
  5. C# break和continue用法
  6. UE4中Pak文件的读取规则
  7. WRFDA教程:3DVar同化卫星辐射率资料
  8. 域名访问Winmail邮件服务器
  9. 应用程序连接hbase报错:java.net.SocketTimeoutException: callTimeout=60000
  10. “跳槽”一词的来历竟然是这样!汗