UVa 10012:How Big Is It? 圆排列问题

题目链接:

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=108&page=show_problem&problem=953

类型: 回溯

原题:

Ian's going to California, and he has to pack his things, including his collection of circles. Given a set of circles, your program must find the smallest rectangular box in which they fit. All circles must touch the bottom of the box. The figure below shows an acceptable packing for a set of circles (although this may not be the optimal packing for these particular circles). Note that in an ideal packing, each circle should touch at least one other circle (but you probably figured that out).

Input

The first line of input contains a single positive decimal integer n, n<=50. This indicates the number of lines which follow. The subsequent n lines each contain a series of numbers separated by spaces. The first number on each of these lines is a positive integer m, m<=8, which indicates how many other numbers appear on that line. The next m numbers on the line are the radii of the circles which must be packed in a single box. These numbers need not be integers.

Output

For each data line of input, excluding the first line of input containing n, your program must output the size of the smallest rectangle which can pack the circles. Each case should be output on a separate line by itself, with three places after the decimal point. Do not output leading zeroes unless the number is less than 1, e.g. 0.543.

Sample Input

3
3 2.0 1.0 2.0
4 2.0 2.0 2.0 2.0
3 2.0 1.0 4.0

Sample Output

9.657
16.000
12.657

题目大意:

给定n个大小不等的圆, 要将这n个圆排进一个矩形框中,要求各个圆都要与矩形框的底边相切。 然后从这n各院的所有排列中找出有最小长度的圆排列。如上图所示。

分析与总结:

这题是做的比较纠结的一道题, 求所有的排列很容易,但是要求圆排列的长度却令人纠结,需要考虑的情况比较多。

我的做法是建立一个坐标轴,然后把第一个圆与x轴和y轴相切,然后一个一个圆放入坐标轴中,只需要存好每个圆的圆心

在坐标的坐标即可。

求放入坐标轴后与相连的两个圆的圆心的水平距离:

h = r2-r1;

L = sqrt( (r1+r2)^2 - (r1-r2)^2 );

那么新加入圆的x坐标为上一个相接的那个圆的x坐标+L

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索touch
, of
, The
, must
that
big bang fxxk it、make it big、make it big 张靓颖、big bang fxxk it mp3、some like it big资源,以便于您获取更多的相关知识。

时间: 2025-01-03 09:01:49

UVa 10012:How Big Is It? 圆排列问题的相关文章

uva 10012 How Big Is It?

点击打开链接 (这个链接到BNUOJ上面是一样的) 题目意思:  给定m个圆的半径,现在要求找到一个矩形使得每一个球都以地面相切,要求输出最小的矩阵的长度 解题思路:  最小的圆排列问题,对于这样的一个图形我么是转化为坐标来计算,那么我们需要做的三个步骤就是  1  递归去放入每一个圆  2 求出每一个圆的圆心的横坐标  3计算最小的长度 . 具体过程见代码分析: 代码: #include <iostream> #include <cstdio> #include <cmat

UVa 10012 How Big Is It? (枚举和细节)

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=953 思路: 最多8个球,直接枚举. 注意: 1. 由于一个圆不一定与圆心横坐标与其横坐标最接近的圆相切,所以判断一个圆圆心横坐标的实际位置要一一比较在它左边的每个圆,取最大值. 2. 由于圆心横坐标在最右边的圆不一定与箱子最右端接触(如上图,我们的算法是保证每

CorelDRAW怎么绘制抽象绚丽的五彩圆点螺旋

今天为大家推荐一篇CDR教程,主要是介绍抽象绚丽的五彩圆点螺旋方法,教程介绍地很详细,对于初学者来说很值得大家学习,好了,下面我们一起来学习吧! 具体的制作步骤如下: 1.首先画一个圆形. 2.画两个小圆形,一个大,一个小. 2.用调和工具把两个圆连接起来,圆的数量可以在上面工具栏输入,这里14个够了,为了效果更好,我这里做了两串圆. 3.点击刚刚调和好的一串圆,点击上面工具栏选择路径属性,新路径,把调和好的两串小圆适合大圆路径,得到下图. 4.细微调整一下把圆排列好,从小到--大从大到小. 5

Illustrator制作彩色时尚圆圈效果教程

给各位Illustrator软件的使用者们来详细的解析分享一下制作彩色时尚圆圈效果的教程. 教程分享: 最终效果图     具体制作步骤如下: 1.打开ai,创建一个新文档,填充颜色是红,没有轮廓.选择椭圆形工具,按住shift按左键拖拽出一个红色的圆.     2.确定圆被选中,对象面板,变换,变换每个,缩放75%,点击复制.这样就会得到一个同心红色圆,把这个新圆填充黄色,然后打开对象面板,重复刚才的操作,然后填充一个新颜色.然后选择所有圆,群组他们,通过点击对象面板,群组.     3.创建

回溯法 -数据结构与算法

1.回溯法算法思想:   定义:         回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标.但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为"回溯点". 1.回溯法适用:有许多问题,当需要找出它的解集(全部解)或者要求回答什么解是满足某些约束条件的最优解时,往往要使用回溯法. 2.有组织的穷举式搜索:回溯法的基本做法是搜索或者有的组织穷尽搜索.它能避免搜索所有的可能

常用算法和复杂度总结

一.常用算法和复杂度 算法 名称 复杂度 备注 快速排序 QuickSort(A,p,r) 最坏:O(n2) 平均:O(nlog n) 均衡划分:O(nlog n)   合并排序 MergeSort(A,p,r) O(nlog n)   选最大 FindMax O(n)   选最大和最小 FindMaxMin W(n)=3n/2-2=O(n)   找第二大 锦标赛法 n+logn-2   选择第k小 Select O(n)   动态规划:矩阵连乘 MatrixChain(P,n) 递归:O(2n

UVa 190 Circle Through Three Points:求不共线三点所确定的圆的方程

190 - Circle Through Three Points Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=126 The solution is to be printed as an equation of the form and an equation of the form Each line of inp

GDI+ 怎样实现字符串在圆内弧型排列 (高手请进)

问题描述 GDI+实现在一个圆圈内让字符串按圆圈的弧线排列....谢谢 解决方案 解决方案二:关注这个问题,一直找不到这些算法的说明.解决方案三:需要你有决心恶补数学技能,计算位置和旋转角度.建议买本数学手册解决方案四:好像是的,得一个字一个位置跟~~~,数学啊!!!解决方案五:该回复于2015-08-29 09:07:17被版主删除

UVa 10763:Foreign Exchange

题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_problem&problem=1704 原题: Your non-profit organization (iCORE - international Confederation of Revolver Enthusiasts) coordinates a very succes