uva
文章平均质量分 76
johsnows
正在静下心来学算法的acmer
展开
-
uva 7219 Problem on Group Trip (优先队列)
题意: 三种洗漱房s1,s2,s3,n个人,每个人按1到3的顺序排队等候洗漱,给出每人在这三个洗漱房需要多少时间洗漱,并且排队过程中,编号小的先洗漱,问需要多少时间所有人完成洗漱 解题思路: 用优先队列存储在3个房间的等候队列,如果洗漱玩了,就加入到下一个队列,注意如果两个相邻队列队首的人同时完成洗漱,那么应该先让编号大的那个队列队首的下一个人先开始洗漱,然后再让编号小的那个刚刚完成原创 2017-02-17 14:18:38 · 433 阅读 · 0 评论 -
UVALive - 6582 Magical GCD (脑洞)
题意: 给一个数列,定义Magical GCD为序列gcd*序列length,问数列中子序列最大Magical GCD是多少. 解题思路: 定义i,j,i为长度,j去遍历i之前的数,逐步求GCD更新最大值,这种做法的时间复杂度是 n^2,这样暴力求肯定是超时的. 但是我们可以从这个思路去优化,我们会发现在逐步往前求GCD的时候,可能我们会连续的求出一些相同的GCD,这些相同原创 2017-02-20 16:11:24 · 543 阅读 · 0 评论 -
uvalive 7635 National Bomb Defusing Squad (几何)
题意: 二维平面给n个点,q次询问,问以其中一个点为圆心,半径为r,能包含的的点的数量的期望 思路: 我们只需要求出每个点能覆盖多少个点的加和然后除以n就可以了,一开始我想的是求出每两个点的距离,然后对于每个点到其它的点的记录都进行排序,在查询的时候直接二分就好,查询的复杂度是qlogn,排序的复杂度是n^2logn这样的复杂度就是排序的复杂度,是n^2logn,tle了。r是小于4原创 2017-04-19 19:44:16 · 829 阅读 · 0 评论 -
uva 12507 Kingdoms(dfs+最小生成树)
题意: n(4-16)个点,每个点有权值,m条带权值的边,问在边权最多花费k的情况下,能让1这个点连通的点的权值加和最大为多少。 解题思路: 做题要看数据范围,n个点直接dfs枚举是否取2到n种的每个点,1肯定要取,然后用最小生成树把枚举出来的点连接,看是否能建成生成树,然后再看生成树的权值是否小于等于k,满足的情况算一下点权和,更新一下答案,就做完了。 代码: #inc原创 2017-06-09 20:36:58 · 459 阅读 · 0 评论 -
uva 10934 Dropping water balloons(dp)
题意: 给出k个水球,n层楼,现在想测试出水球最低会在那层楼扔下爆炸,问最少需要测试多少次, 注意要求的情况是每层楼都可能爆炸。 解题思路: 一眼看上去会觉得是二分,如果求数够的话,确实能够在log2(n)的次数之内求出测试出来,但是这个问题我们要考虑的是每个位置都有可能爆炸,所以不仅球不够,目标位置没有确定也导致我们不可能考虑二分。 想一想如果去搜索的话,我们肯定会搜索还原创 2017-08-30 16:18:40 · 339 阅读 · 0 评论