摘要: 题意: 有n台损坏的电脑,现要将其逐台修复,且使其相互恢复通信功能。若两台电脑能相互通信,则有两种情况,一是他们之间的距离小于d,二是他们可以借助都可到达的第三台已修复的电脑。给出所有电脑的坐标位置,对其进行两种可能的操作,O x表示修复第x台,S x y表示判断x y之间能否通信,若能输出SUCC 阅读全文
posted @ 2017-08-16 22:25 demianzhang 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 题意:从C头奶牛中招收N(奇数)头。它们分别得分score_i,需要资助学费aid_i。希望新生所需资助不超过F,同时得分中位数最高。求此中位数。 思路: 先将奶牛排序,考虑每个奶牛作为中位数时,比它分数低(前面的)的那群牛的学费总和lower_i,后面的总和upper_i。然后从分数高往分数低扫描 阅读全文
posted @ 2017-08-16 21:42 demianzhang 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 题意:奶牛美容:有C头奶牛日光浴,每头奶牛分别需要minSPF_i和maxSPF_i单位强度之间的阳光。现有L种防晒霜,分别能使阳光强度稳定为SPF_i,其瓶数为cover_i。求最多满足多少头奶牛 思路: 将奶牛按照阳光强度的最小值从小到大排序。将防晒霜也按照能固定的阳光强度从小到大排序。 从最小 阅读全文
posted @ 2017-08-16 15:19 demianzhang 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 题意:给你N(N<=100)只牛,每只牛有一个智慧值Si和一个活泼值Fi,现在要从中找出一些来,使得这些牛智慧值总和S与活泼值总和F之和最大,且F和S均为正。Si和Fi范围在-1000到1000之间。 思路: 可以把S当体积,F当价值做01背包。但是注意是S可为负,所以整体加100000,然后要注意 阅读全文
posted @ 2017-08-16 14:36 demianzhang 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 题意: 有一头牛想要建一座石塔,他有很多不同类型的石块。每类石块有三个属性:1. (h): 石块的高度;2. (a): 石块能达到的最大高度;3. (c): 石块的数量 思路: 采用多重背包。注意点:在做背包前需要对石块能到达的最大高度(a)进行排序,防止石塔到了一定高度后,剩下的一些石块所能达到的 阅读全文
posted @ 2017-08-16 13:48 demianzhang 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 题意:农夫约翰想修一条尽量平缓的路,路的每一段海拔是A_i,修理后是B_i,花费|A_i – B_i|,求最小花费。 思路:平缓的意思是海拔单调增或单调减(非严格),主要目的大概是让我们做出“到底是增好还是减好”选择。 用DP的话可以完全忽略这个选择: dp[i][j] := 前i + 1个数变成单 阅读全文
posted @ 2017-08-16 13:01 demianzhang 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个长为n(n<=40000)的整数序列, 要你求出该序列的最长上升子序列LIS. 思路:要求(nlogn)解法 令g[i]==x表示当前遍历到的长度为i的所有最长上升子序列中的最小序列末尾值为x.(如果到目前为止, 根本不存在长i的上升序列, 那么x==INF无穷大) 假设当前遍历到了第 阅读全文
posted @ 2017-08-16 11:26 demianzhang 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题意: 有一些木棍,每个有长度和重量,要求把这些木棍排成若干两个属性值均不下降的序列。问至少要分为多少个序列。且要保证排出来的子序列数最少。 思路: ( 9 , 4 ) ,( 2 , 5 ) ,( 1 , 2 ) ,( 5 , 3 ),( 4 , 1 )可以排成这样 ( 4 , 1 ) , ( 5 阅读全文
posted @ 2017-08-16 00:00 demianzhang 阅读(291) 评论(0) 推荐(0) 编辑