UVA1388 Graveyard(思维、数学推理)
整理的算法模板合集: 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(思维、数学推理)相关推荐
- 传球问题(思维+数学推理)
- PLM是做题家吗?一文速览预训练语言模型数学推理能力新进展
©作者 | 张北辰 单位 | 中国人民大学高瓴人工智能学院 数学推理能力是人类智能的一项非常重要又富有挑战性的能力.尽管在各类自然语言相关的理解和生成任务等中取得了良好的效果,预训练语言模型可以准确地 ...
- 论文浅尝 | NumNet: 一种带有数学推理的机器阅读理解模型
论文笔记整理:吴林娟. 来源:EMNLP2019 论文链接:https://arxiv.org/pdf/1910.06701.pdf 开放源码:https://github.com/ranqiu92/ ...
- 关于鬼谷子的数学推理题
之前在网上看到一个小学奥数级别的题目如下: 一天鬼出了这道题目:他从2到99中选出两个不同的整数,把积告诉孙,把和告诉庞: 庞说:我虽然不能确定这两个数是什么,但是我肯定你也不知道这两个数是什么. 孙 ...
- c语言小红今年12岁小明13岁,[转载]三年级下“创新思维数学讲义”——年龄问题...
三年级下"创新思维数学讲义"-- 年龄问题 邵 玲 热身场 相传,乾隆皇帝下江南时,遇到了一位老寿星.老人鹤发童颜,精神焕发,乾隆皇帝当即赠一上联给老人,写的是:"花甲重 ...
- nowcoder_A_放羊的贝贝_思维+数学
nowcoder_A_放羊的贝贝_思维+数学 放羊的贝贝 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO For ...
- OpenAI推出数学推理证明模型,推理结果首次被数学家接受
大数据文摘出品 作者:牛婉杨 今年6月,OpenAI发布一款强大的文本生成模型GPT-3,不少网友迅速上手用了起来,有人用它写食谱.写歌词,甚至有人用它写博客,愣是以假乱真登上了新闻平台技术板块热榜第 ...
- 计算机思维游戏推理论文,基于严肃游戏的计算思维培养
摘要:在分析严肃游戏这一新兴的教学方式的基础上,提出基于严肃游戏培养计算思维能力的观点,以案例的形式讨论严肃游戏与计算思维能力培养的几种结合方式.介绍以各门专业知识为目的跨学科的严肃游戏文案设计训练. ...
- 语言兔子繁衍问题讲解_二年级思维数学:位置问题,找到重复部分是解题关键...
[思维策略] 同学们排队,以某一个人为标准来数人数,知道他左边.右边人数或从左.从右数他排第几,这类问题就是排队问题,排队问题的关键是要找出重复部分再解答. 在排队问题中,中间这一个人既不能漏掉,也不 ...
最新文章
- Python是如何一步步成为热门编程语言的?
- 谷歌旗下DeepMind开发出编程机器人,已达人类程序员平均水平!
- python(numpy,pandas10)——pandas 合并数据 concat,append
- nginx开发从入门到精通 http://tengine.taobao.org/book/
- linux手工迁移php,Linux+PHP+MySql网站迁移配置
- jmeter-00 JMeter 运行过程
- demo 网络运维_网络运维简介
- C++笔记——有关内存对齐
- vb.net axWindowsMediaPlayer 控件使用
- 数据中心智能化运维之路
- 8.Springcloud的Feign嵌入Ribbon实现接口式调用(改变restTemplate和Ribbon的调用方式)...
- 计算机控制软件流程图,计算机控制系统的组成
- Modbus的CRC校验算法
- foobar 更换皮肤
- linux串口链接扫码枪,串口扫描枪怎样使用?
- 伺服舵机带参方向控制
- 2020-08-31
- Flutter-Container详解
- 买拍参考贴中羽主力拍统计
- ST-LINK使用注意