随笔分类 - 贪心法
摘要:bzoj1150[CTSC2007]数据备份Backup 题意: n个地方,在其中找k对地方,每个地方只属于一对。定义一对的费用为两个地方的距离,求最小费用总和。 题解: 把所有相邻地方距离放入一个集合中,每次取出最小的那个距离x,然后将相邻两边的距离l,r合并成l+r-x。如果这个x缺一边相邻,则
阅读全文
摘要:bzoj2348[Baltic 2011]Plagiarism 题意: n个数,如果其中两个数fi≤fj且fi≥0.9*fj,则它们要被比较。求多少对数要被比较。n≤100000。 题解: 排序然后双指针法。 代码: 20160829
阅读全文
摘要:bzoj1629[Usaco2007 Demo]Cow Acrobats 题意: n头牛,每天牛都有体重与力量值。它们玩叠罗汉的游戏,每个牛的危险值等于它上面的牛的体重总和减去它的力量值,求所有方案中危险值最大的最小。 题解: 贪心。第i头牛比第j头牛高当且仅当i的重量-j的力量<j的重量-i的力量
阅读全文
摘要:bzoj1821[JSOI2010]Group 部落划分 Group 题意: n个野人,分为k个部落,两个部落之间距离定义为两个部落最近两个野人的距离,要求划分时最近的部落最远。求这种划分下部落间最近距离。n,k≤1000,野人坐标≤10000是整数。 题解: 每次将两个部落连接,则这两个部落之间的
阅读全文
摘要:bzoj2761[JLOI2011]不重复数字 题意: 给出N个数,要求把其中重复的去掉,只保留第一次出现的数。n≤50000 题解: 一道令管理员都后悔加入的水题,按大小排序后unique,再按读入顺序排序即可。 代码: 20160610
阅读全文
摘要:bzoj2697特技飞行 题意: N个单位时间,每个单位时间可以进行一项特技动作,可选的动作有K种,每种动作有一个刺激程度Ci。每次动作的价值为(距上次该动作的时间)*Ci,若为第一次进行该动作,价值为0。求最大总价值。N≤1000,K≤300。 题解: 因为如果同个动作做3次,不如只做头尾两次更好
阅读全文
摘要:bzoj4291[PA2015]Kieszonkowe 题意: 给定n个数,请从中选出若干个数,使得总和为偶数,请最大化这个总和。n≤1000000。 题解: 如果这n个数中有偶数个奇数,就将所有数都选出;否则放弃最小的奇数,选出剩下的数。 代码: 20160812
阅读全文
摘要:bzoj2014[Usaco2010 Feb]Chocolate Buying 题意: n种巧克力,每种有个单价和最多能买几块,问有B块钱一共最多能买几块。n≤100000 题解: 贪心,按单价排序。 代码: 20160811
阅读全文
摘要:bzoj3410[Usaco2009 Dec]Selfish Grazing 自私的食草者 题意: n个区间,求最多的区间集合使其互不覆盖。n≤50000 题解: 好像是第三次出现这种题了~但是区间范围可达10^9,不能dp了QAQ膜了一发题解发现只要按区间右端点排序然后贪心取即可。 代码: 201
阅读全文
摘要:bzoj3399[Usaco2009 Mar]Sand Castle城堡 题意: 给个序列a,再给个可变换顺序的序列b,求a变为b的最小代价。a增加一个单位代价为x,降低一个单位代价为y。序列大小≤25000 题解: a,b排序,直接统计即可。 代码: 20160810
阅读全文
摘要:bzoj1634[Usaco2007 Jan]Protecting the Flowers 护花 题意: n只牛在啃花,第i只每分钟啃ai朵,赶走它需要2*bi分钟,问最少会被啃掉多少朵。n≤100000 题解: 贪心。只考虑第i只牛与第j只牛孰先孰后,如果第i只牛先会多啃掉2*bi*aj朵,第j只
阅读全文
摘要:bzoj4582[Usaco2016 Open]Diamond Collector 题意: n个钻石,每个都有一个大小,现在将其装进2个盒子里,每个盒子里的钻石最大的与最小的大小不能超过k,问最多能装多少个。n最大50000。 题解: 我真傻,真的~首先对大小排序,然后找以i为左端点的可装区间,这个
阅读全文
摘要:bzoj1029[JSOI2007]建筑抢修 题意: 抢修N个建筑。修理工人一次只能修理一个建筑,如果某个建筑在一段时间之内没有完全修理完毕,这个建筑就报废了。求一个能抢修尽可能多的建筑的抢修顺序。 题解: 贪心。首先按毁坏时间排序,如果按照当前的时间计算能修好这个建筑,就修好它;如果修不好,就找以
阅读全文
摘要:bzoj1623[Usaco2008 Open]Cow Cars 奶牛飞车 题意: n头奶牛开车,第i头速度上限为si,高速上有m个车道,如果在一头奶牛前面有d头奶牛位于它所在车道,这头奶牛的实际速度为si-k*d,高速最低速度为l,求一共可以让多少头奶牛上高速。n,m≤50000 题解: 先让所有
阅读全文
摘要:bzoj1639[Usaco2007 Mar]Monthly Expense 月度开支 题意: n天,每天有一个花费,现在要将它们分成连续的m段,要求所有段的总花费的最大值最小。求这个值。n,m≤100000 题解: 二分花费,小于二分值的天作为一段。注意二分的下界应该是每天花费的最大值。 代码:
阅读全文
摘要:bzoj1650[Usaco2006 Dec]River Hopscotch 跳石子 题意: 数轴上有n个石子,第i个石头的坐标为Di,现在要从0跳到L,每次跳都从一个石子跳到相邻的下一个石子。现在问移走这M个石子后,相邻两个石子及0到最前一个石子及最后一个石子到L距离的最小值的最大值是多少。n≤5
阅读全文
摘要:bzoj3668[Noi2014]起床困难综合症 题意: 求0到m的一个数,使它被n次操作后最大。操作三种:&t、|t、^t,t为操作中给定的数。n≤100000,m,t≤1000000000 题解: 先求出0经过n次操作后得到的数,然后对于小于等于m的每个二进制位从大到小考虑一下当这位为1时是否比
阅读全文
摘要:bzoj1620[Usaco2008 Nov]Time Management 时间管理 题意: n个任务,每个有一个所需时间和最晚完成时刻,问最晚要从什么时候开始工作。n≤1000 题解: 贪心,按最晚完成时刻从早到晚排序,如果当前任务来不及完成,就将前面的任务往前推,否则累积一个“自由时间”。当推
阅读全文
摘要:bzoj1689[Usaco2005 Open] Muddy roads 泥泞的路 题意: 数轴上n个互不覆盖的区间,问要用多少个长为L的线段覆盖。n≤10000 题解: 排序区间,然后从每个区间左端点开始铺木板,如果最后一块木板能够铺到下一个区间就铺,以此类推。 代码: 20160729
阅读全文
摘要:bzoj1626[Usaco2007 Dec]Building Roads 修建道路 题意: 坐标系上n个点,其中一些点连了边,问使点连通还要连边的最小总长度。n≤1000。 题解: 用并查集维护连通块,先将连好边的点合并,然后再按长度从小到大连边。 代码: 20160727
阅读全文

浙公网安备 33010602011771号