题目描述:
有一个100*1000矩形,要在这个矩形框中种树,要求每颗树之间的距离不得小于1米,问最多可以种多少树?
题目分析:
每两个树之间的距离必须大于等于1米,那么直觉上会想到等边三角形,这样就可以满足任意两个点之间的距离为1米,那么我们的想法就是用1米长的等边三角形去填充那个矩形。
我们以100为宽,1000为高,那么第一行可以种101颗,以正三角形来安放,那么第二行就是中100颗,如图所示:
1 2 3 4 。。。。
1 2 3
那么可以算出,每两行之间的 高度为 sqrt(3) / 2 = 0.866...,然后通过计算 1000 / 0.866 = 1154 ,那么一共就可以种1155行,所以最多可以种的树的数量为 101 * (1155/2+1) + 100 * 1155/2 = 116078。
算到这个地方,问题似乎解决了,但是细心一点可以发现,当你种到1155行后,一共只是用掉了 1154*0.866 = 999.39 ,还有 0.61的地方没有用,但是还种一排显然是不合格的。
可是如果我们最后几排不遵守正三角形规则的话,每行高度不是相差0.866么 ,只是差 0.134,所以一旦我们将上下高度调整为1米,那么偶数排可以多种一颗树,那么现在如果我们按三角形法则种树,种到第1151行,这时候一共占据高度1150*0.866=995.9,以下的种树我们按着排的1米宽度种一行,那么 995.9 + 1 + 1 + 1 + 1 = 999.9 ,加起来刚好也是1155行,两行偶数,两行奇数,只是偶数行比以前多了1颗树,所以一共多了两颗,所以最后的答案便是116080颗!
还有一种思路是,用半径为1的圆填充,看填不能相交的圆一共有多少个,矩形区域变成102*1002的大小,其实质也是等边三角形填充!
从这个可以看出,用等边三角形填充往往对这样的问题比较实用 ,但最后一定要想清楚,如果不是刚好够,最后处理的时候要适当的不按规则图形来填充!
发表评论
-
QQ中杂七杂八的调用点
2016-03-28 20:52 0QQ中的API调用太多了,在这里做一个记录,方便以 ... -
各类公司2014笔试题
2013-09-17 09:33 687美团: http://www.itmian4.com/f ... -
面试题汇总
2013-08-30 00:53 8041.题目:给定数组A,大小为n,数组元素为0到n-1的数字 ... -
非递归、仅用一个栈、不加标记数组实现二叉树的后序遍历算法
2013-08-18 23:55 0http://www.cnblogs.com/fin ... -
球称重问题
2013-07-28 22:47 0一般的问题是,如果明确次品球是重或轻,可以直接利用公式 ... -
随机概率相关面试题详解
2013-05-15 10:46 01. 已知有个rand7()的函数,返回1到7随机 ... -
csdn------屌丝们的欢乐算法题
2013-03-08 21:34 01. 1 2 3 ... -
贪心算法---基础篇
2012-08-26 13:20 0理论部分 贪 ... -
计算几何-----判断一个点是否在多边形内
2012-08-20 15:01 0如何判断点在多 ... -
大整数相关运算
2012-08-20 13:52 0既然这是我的暑假任务,那么不管怎样一定要按计划完成了! ... -
编程之美---寻找发帖水王(含扩展问题)
2012-08-19 10:11 0题目:Tango是微软亚洲 ... -
编程之美-----2.21只考加法的面试题
2012-08-12 19:59 0http://www.cnblogs.com/flyinghe ... -
前序+中序==>后序 && 后序+中序==>前序
2012-08-12 09:49 0一. 前序 + 中序 -> 后序 分析: ... -
DE算法学习
2012-08-07 12:38 0DE(差分演化算法) 理论: 这部分内容直接参 ... -
字符串的hash
2011-08-23 00:58 0这段时间一直学习hash,总结的片片断断,今天就比较重要的 ... -
qsort总结大全(转)
2011-08-23 00:36 0qsort()排序函数的使用qsort函数应用大全 ... -
树的同构问题
2011-08-22 14:56 0前几天看一个hash问题,结果涉及到了树的同构 ... -
树的同构
2011-08-22 10:49 0前几天看一个hash问 ... -
hash的相关应用
2011-08-19 00:45 0hash函数如果设计合理,理想情况下查询的时间花费仅仅为 ... -
排序算法--桶排序(基数排序)
2011-08-15 10:55 17911.基数排序 基数排序的思想是针对整数的每一位进行 ...
相关推荐
《程序员的算法趣题》是一本专门为IT从业者和有志于进入这个领域的学习者准备的算法书籍。它通过一系列有趣且富有挑战性的题目,旨在帮助读者深入理解和掌握计算机科学中的核心算法,提升解决实际问题的能力。这本书...
**题目描述**:编写一个程序,输入一个任意长度的字符串,统计其中每个不同字符的出现次数,并输出统计结果。 **Python解答分析**: 1. **Dictionary声明与初始化**:首先声明一个空字典`dic={}`用于存储字符及其...
分治是一种算法设计范式,其核心思想在于将一个复杂的问题逐步分解为若干个小问题,直至这些问题足够简单,可以被直接求解。求解后,再将这些简单问题的解合并,以得到原来复杂问题的解。分治算法的典型例子包括快速...
设置两个指针,一个每次移动一步,另一个每次移动两步。如果链表中有环,快指针最终会追上慢指针;若无环,快指针会到达链表尾部。这种情况下,快慢指针可以在不超过2N步内相遇,满足了时间复杂度的要求。 #### 2. ...
对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个...
总之,“C++Consle基础算法10题”是一个很好的学习资源,它将理论知识与实践结合,有助于初学者提升C++编程技能,同时也能激发他们对算法和问题解决的兴趣。通过深入研究和实践这些代码,不仅可以学习到基本的C++...
虽然这个例子不属于图形绘制,但仍然是C语言算法的一个应用。在歌星大奖赛中,需要去除一个最高分和一个最低分,然后取其余8个评委的平均分作为选手的最终得分。这个算法涉及数组操作和数值处理,通过排序找出最高...
对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个...
- **特点**:日本的一个在线编程平台,题目新颖有趣。 - **适用对象**:喜欢挑战新鲜事物的编程爱好者。 - **优势**:题型多样,富有创意。 ### 12. CF (Codeforces) - **特点**:全球最受欢迎的在线编程竞赛平台...
彩蛋.pdf可能是作者或出版者提供的额外资料,如解题技巧、算法解析或者其他与《算法导论》相关的有趣内容,旨在增强读者的学习体验和兴趣。 解压密码.pdf可能包含了解压缩包所需的密码信息,这通常是为了保护版权...
对于学习这门课程的学生或者对算法感兴趣的自学者来说,这是一个极其宝贵的资源。英文版可能会对部分读者构成挑战,但同时也是提高英语阅读能力以及加深对算法概念理解的好机会。 课后习题涵盖了广泛的算法主题,...
文档中提到了一个有趣的比较,即插入排序和归并排序在不同数据规模下的效率对比。当输入数据量较小(具体为2≤n≤43)时,插入排序的性能优于归并排序。为了进一步优化归并排序的运行时间,可以考虑在输入数据小于...
《算法设计》是一本深入探讨算法设计方法和分析的经典教材,涵盖了从图论到动态规划等广泛主题。..."birds.txt"中的密码可能是一个有趣的额外挑战,需要解密才能访问这些解答,增加了学习过程的趣味性。
本压缩包“scratch10道算法题及答案.zip”提供了10个精心设计的算法题目,旨在帮助孩子们提升逻辑思维能力和问题解决能力。下面,我们将详细探讨这些算法题目以及它们涉及的知识点。 1. **排序算法**:Scratch中的...
这是一个经典的算法问题,涉及数论知识。 **代码示例(伪代码):** ```cpp for(int i = 1; i ; i++) { int sumOfFactors = sumTrueFactors(i); if(sumOfFactors > i && sumTrueFactors(sumOfFactors) == i) { ...
因此,掌握一套扎实的算法基础,对于每一个有志于参与蓝桥杯等算法竞赛的学生而言,都显得尤为重要。 在本次更新的题库中,"基础练习"的侧重点不言而喻,它面向的是算法竞赛的初学者,这部分人往往需要从最基础的...
对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。本书专门讨论了线性规划,介绍了动态规划的两个...
我们力求使书中给出的每一个算法都易于理解和有趣。为了在同学们遇到不熟悉或比较困难的算法时提供帮助,我们逐个步骤地描述每一个算法。此外,为了便于大家理解书中对算法的分析,对于其中所需的数学知识,我们给出...
本书以小灰的视角,通过一系列有趣的场景和生动的漫画,深入浅出地讲解了算法的高级概念和技术,包括图算法、动态规划、贪心算法、分治算法等。 知识点: 1. 图算法:图算法是解决图问题的算法,例如最短路径算法...