整理的算法模板合集: ACM模板


目录

如何使得所有点位置平均,并且使得原来的点移动的距离最短呢。

首先我们每个点原来有n个,那么我们设此时总长度为1,那么第一个点做原点,距原点距离为000。第二个点距原点距离就是 1n\frac{1}{n}n1​ ,第三个点就是2n\frac{2}{n}n2​,一直到n−1n\frac{n-1}{n}nn−1​ 。我们加入mmm个点,使得总点数为n+mn+mn+m,那么我们平均之后每一个点的位置就跟刚刚一样,1n+m\frac{1}{n+m}n+m1​,3n+m\frac{3}{n+m}n+m3​,3n+m\frac{3}{n+m}n+m3​…,我们如何找到最近的位置让我们原来的点都移动过去呢,很直观的想法是原来每个点是 1n\frac{1}{n}n1​ ,2n\frac{2}{n}n2​…,我们将所有最后应该到达的位置1n+m\frac{1}{n+m}n+m1​,3n+m\frac{3}{n+m}n+m3​,3n+m\frac{3}{n+m}n+m3​…存在setsetset里,然后二分low_bound找到第一个大于他和第一个小于他的位置,取最小差值即可(直接模拟)。但是这样是不是太麻烦了(而且除以n+mn+mn+m之后可能会有精度误差)。我们思考有没有什么方便的操作可以取代二分找最短距离。我们可以除以n+mn+mn+m,为什么不乘以n+mn+mn+m试试呢,乘以n+mn+mn+m以后,总距离变成了n+mn+mn+m,使得所有点均匀放置的话我们每个点的最终位置就应该是1,2,3...n+m1,2,3...n+m1,2,3...n+m,那么我们最开始的位置从总长度为1的1n\frac{1}{n}n1​,2n\frac{2}{n}n2​变成了1∗(n+m)n\frac{1*(n+m)}{n}n1∗(n+m)​,2∗(n+m)n\frac{2*(n+m)}{n}n2∗(n+m)​,这样都变成了总长度为n+mn+mn+m的形式。我们发现最终的位置都是整数,这样就有了一个大胆的想法,直接四舍五入不就是一个分数到达整数的最短距离嘛,那么我们最终位置是整数,我们移动的过程就是从分数移动到整数的最短距离,那么我们的答案就利用四舍五入,累加距离,即是最终的答案。

至于代码就非常简单了

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>using namespace std;int n, m;
int main()
{while(scanf("%d%d", &n, &m) != EOF){double ans = 0.0;for(int i = 1; i < n; ++ i){//一共n-1个点需要移动double pos = (double)i / n * (n + m);ans += fabs(pos - floor(pos + 0.5)) / (n + m);}printf("%.4f\n", ans * 10000);}return 0;
}

UVA1388 Graveyard(思维、数学推理)相关推荐

  1. 传球问题(思维+数学推理)

  2. PLM是做题家吗?一文速览预训练语言模型数学推理能力新进展

    ©作者 | 张北辰 单位 | 中国人民大学高瓴人工智能学院 数学推理能力是人类智能的一项非常重要又富有挑战性的能力.尽管在各类自然语言相关的理解和生成任务等中取得了良好的效果,预训练语言模型可以准确地 ...

  3. 论文浅尝 | NumNet: 一种带有数学推理的机器阅读理解模型

    论文笔记整理:吴林娟. 来源:EMNLP2019 论文链接:https://arxiv.org/pdf/1910.06701.pdf 开放源码:https://github.com/ranqiu92/ ...

  4. 关于鬼谷子的数学推理题

    之前在网上看到一个小学奥数级别的题目如下: 一天鬼出了这道题目:他从2到99中选出两个不同的整数,把积告诉孙,把和告诉庞: 庞说:我虽然不能确定这两个数是什么,但是我肯定你也不知道这两个数是什么. 孙 ...

  5. c语言小红今年12岁小明13岁,[转载]三年级下“创新思维数学讲义”——年龄问题...

    三年级下"创新思维数学讲义"-- 年龄问题 邵 玲 热身场 相传,乾隆皇帝下江南时,遇到了一位老寿星.老人鹤发童颜,精神焕发,乾隆皇帝当即赠一上联给老人,写的是:"花甲重 ...

  6. nowcoder_A_放羊的贝贝_思维+数学

    nowcoder_A_放羊的贝贝_思维+数学 放羊的贝贝​​​​​​​ 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO For ...

  7. OpenAI推出数学推理证明模型,推理结果首次被数学家接受

    大数据文摘出品 作者:牛婉杨 今年6月,OpenAI发布一款强大的文本生成模型GPT-3,不少网友迅速上手用了起来,有人用它写食谱.写歌词,甚至有人用它写博客,愣是以假乱真登上了新闻平台技术板块热榜第 ...

  8. 计算机思维游戏推理论文,基于严肃游戏的计算思维培养

    摘要:在分析严肃游戏这一新兴的教学方式的基础上,提出基于严肃游戏培养计算思维能力的观点,以案例的形式讨论严肃游戏与计算思维能力培养的几种结合方式.介绍以各门专业知识为目的跨学科的严肃游戏文案设计训练. ...

  9. 语言兔子繁衍问题讲解_二年级思维数学:位置问题,找到重复部分是解题关键...

    [思维策略] 同学们排队,以某一个人为标准来数人数,知道他左边.右边人数或从左.从右数他排第几,这类问题就是排队问题,排队问题的关键是要找出重复部分再解答. 在排队问题中,中间这一个人既不能漏掉,也不 ...

最新文章

  1. Python是如何一步步成为热门编程语言的?
  2. 谷歌旗下DeepMind开发出编程机器人,已达人类程序员平均水平!
  3. python(numpy,pandas10)——pandas 合并数据 concat,append
  4. nginx开发从入门到精通 http://tengine.taobao.org/book/
  5. linux手工迁移php,Linux+PHP+MySql网站迁移配置
  6. jmeter-00 JMeter 运行过程
  7. demo 网络运维_网络运维简介
  8. C++笔记——有关内存对齐
  9. vb.net axWindowsMediaPlayer 控件使用
  10. 数据中心智能化运维之路
  11. 8.Springcloud的Feign嵌入Ribbon实现接口式调用(改变restTemplate和Ribbon的调用方式)...
  12. 计算机控制软件流程图,计算机控制系统的组成
  13. Modbus的CRC校验算法
  14. foobar 更换皮肤
  15. linux串口链接扫码枪,串口扫描枪怎样使用?
  16. 伺服舵机带参方向控制
  17. 2020-08-31
  18. Flutter-Container详解
  19. 买拍参考贴中羽主力拍统计
  20. ST-LINK使用注意

热门文章

  1. CVPR | 让合成图像更真实,上交大提出基于域验证的图像和谐化
  2. 卷起来了,写了一套Tensorflow和Pytorch的教程
  3. 简单理解浏览器的event loop 和 JavaScript的同步异步
  4. 控制客户端对同一个服务端地址的连接端口数量
  5. Java线程池使用与原理
  6. 九、将cs文件快速的转换成可执行文件和响应文件(配置编译开关的文件)
  7. 二、 创建3D场景的一般步骤
  8. 仿QQ空间用一个tableview显示多种自定义cell
  9. Powershell管理系列(五)修改AD账号属性
  10. 如何判断Android手机当前是否联网?