ACM刷题
Asher@福
这个作者很懒,什么都没留下…
展开
-
队列应用——POJ2259(团队队列)
题目来源:http://poj.org/problem?id=2259 题目解析:该题目的要求总结如下 (1)入队时:首先遍历一下当前队列中,是否有和自己处在同一组中的元素, 如果找到插入到其后面,没有找到则在队尾插入 (2)出队时:清除队列头部的元素 (3)输入的第一个数为队伍的个数n (4)紧跟着接下来的n行代表队伍中元素的个数,以及每个元素 (5)当输入的命令为ENQUEUE时,需要输入...原创 2019-04-08 21:36:38 · 1210 阅读 · 0 评论 -
队列的应用——POJ1581(竞赛决策)
题目来源:http://poj.org/problem?id=1581 解析:该题目要求我们开发一个竞赛决策的程序。参加竞赛的每个队伍都会领到四个竞赛题目,参赛者只需完成之后提交结果,最终由比赛主办发公布最终的获胜队伍。主办方从两个方面进行评判,第一、参赛队伍完成题目的个数;第二、参赛队伍的罚分。每道题的罚分计算公式为:完成题目的时间 + (完成题目的提交次数 - 1)* 20。当题目的罚分为0...原创 2019-04-08 21:18:10 · 196 阅读 · 0 评论 -
栈的应用POJ1363——Rail
题目来源:http://poj.org/problem?id=1363 题目介绍:有一个火车站,因为地理位置的原因,所以修建成如下图所示的样子。假设火车的车厢为N节,按照要求火车从A方向进站时,车厢的排列顺序依次为1、2、3、4……N,当其从B方向出站时,可以按照一些要求的排列顺序出站。 给定的条件:火车的任意节车厢都可以拆掉重组,但是进站的顺序从1、2、3、4……N不能改变 边界条件: (1)...原创 2019-04-03 22:35:53 · 565 阅读 · 1 评论 -
POJ1664——动态规划+递归应用
题目来源:http://poj.org/problem?id=1664 参考链接:(1)https://blog.csdn.net/mmc2015/article/details/50167021 (2)https://blog.csdn.net/libin56842/article/details/17046433 题目概要:把M个同样的苹果放在N个同样...原创 2019-04-15 22:36:24 · 190 阅读 · 0 评论 -
POJ——1442(优先队列)
题目来源:http://poj.org/problem?id=1442 参考链接:https://blog.csdn.net/LYHVOYAGE/article/details/18360655 题目大意:给定M个数,每次可以插入序列一个数;再给N个数,表示在插入第几个数时输出一个数,第一次输出序列中最小的,第二次输出序列中第二小的……以此类推,直到输出N个数。 解题分析:创建两个优先队列,...原创 2019-04-17 22:20:34 · 778 阅读 · 1 评论 -
POJ1064——Cable master(二分查找应用)
题目来源:http://poj.org/problem?id=1064 题目大意:有N条电缆,长度各不相同。如果从他们中切割出K条长度相同的电缆,求这K条电缆每条最长能有多长?(答案保留小数点后两位,规定1米的电缆最多可以切割成100份,即最小的切割单位是厘米)。 题目分析:该题目为一个典型的二分查找问题,与POJ3122的解题思路很相似,因此在这里不在赘述。该问题需要注意的是对计算精度的保证...原创 2019-04-24 23:53:18 · 269 阅读 · 0 评论 -
POJ1200——Crazy Search(散列表的应用)
题目来源:http://poj.org/problem?id=1200 题目大意:随机给定一段内容,并且这段内容由NC中不同字符组成,求出长度为N的子串有多少种。边界条件为,子串的个数不超过16000000。 解题思路:利用散列表的思想,首先构建散列函数,将不同子串映射成唯一的散列值存放在散列表中,这样当执行查找元素和增元素时的时间复杂度均为O(1)。利用这一特性我们可以轻松完成该题目。 注意:该...原创 2019-05-15 21:59:48 · 224 阅读 · 0 评论 -
POJ2785——4 Values whose Sum is 0(二分查找的应用)
题目来源:http://poj.org/problem?id=2785 题目大意:给定长度相等的四列数,要求从每列中选择一个数,求出4个数加和为0的所有组合。 解题思路:如果选用暴力的方法,时间复杂度为O(n^4),最终肯定会超时。为了降低时间复杂度可以选用二分法,先将前两列数的所有组合结果求出存放在一个数组中,再进行排序,然后利用二分查找去有序的数组中查找后两列组合结果的相反数。该方法的时间...原创 2019-05-17 22:37:43 · 241 阅读 · 0 评论