
基础算法——贪心
文章平均质量分 60
Alex_McAvoy
想要成为渔夫的猎手
展开
-
基础算法 —— 贪心算法
【概述】贪心算法是从问题的初始状态出发,通过若干次的贪心选择而得到的最优值的一种求解策略,即贪心策略。简单来说,贪心策略是一种在每次决策时采取当前意义下最优策略的算法,做出的选择至少在某种约束条件下的局部最优解或较优解,并不一定是全局的最优解或较优解,但在某些特定的情况下,可以利用贪心算法来求得其最优解或较优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心...原创 2019-01-24 21:53:35 · 3138 阅读 · 1 评论 -
Roundgod and Milk Tea(HDU-6667)
Problem DescriptionRoundgod is a famous milk tea lover at Nanjing University second to none. This year, he plans to conduct a milk tea festival. There will be n classes participating in this festiv...原创 2019-10-13 18:25:44 · 730 阅读 · 0 评论 -
Turn the Rectangles(CF-1008B)
Problem DescriptionThere are nrectangles in a row. You can either turn each rectangle by 90 degrees or leave it as it is. If you turn a rectangle, its width will be height, and its height will be ...原创 2018-08-23 19:57:51 · 284 阅读 · 0 评论 -
New Year Snowmen(CF-140C)
Problem DescriptionAs meticulous Gerald sets the table and caring Alexander sends the postcards, Sergey makes snowmen. Each showman should consist of three snowballs: a big one, a medium one and a ...原创 2019-06-02 15:49:54 · 338 阅读 · 0 评论 -
Walk and Teleport(AtCoder-2287)
Problem DescriptionThere are N towns on a line running east-west. The towns are numbered 1 through N, in order from west to east. Each point on the line has a one-dimensional coordinate, and a poin...原创 2019-05-28 17:58:40 · 333 阅读 · 0 评论 -
X: Yet Another Die Game(AtCoder-2298)
Problem DescriptionSnuke has decided to play with a six-sided die. Each of its six sides shows an integer 1 through 6, and two numbers on opposite sides always add up to 7.Snuke will first put th...原创 2019-05-30 13:57:57 · 468 阅读 · 0 评论 -
Boxes and Candies(AtCoder-2152)
Problem DescriptionThere are N boxes arranged in a row. Initially, the i-th box from the left contains ai candies.Snuke can perform the following operation any number of times:Choose a box cont...原创 2019-05-23 13:38:36 · 552 阅读 · 0 评论 -
独木舟(51Nod-1432)
题目n个人,已知每个人体重。独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟?输入第一行包含两个正整数n (0<n<=10000)和m (0<m<=2000000000),表示人数和独木舟的承重。接下来n行,每行一个正整数,表示每个人的体重。体重不超过100...原创 2019-04-25 09:29:30 · 490 阅读 · 0 评论 -
不重叠的线段(51Nod-1133)
题目X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。输入第1行:1个数N,线段的数量(2 <= N <= 10000)第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <= ...原创 2019-04-17 20:23:25 · 380 阅读 · 0 评论 -
美食
【题目描述】小B喜欢美食。现在有n个美食排成一排摆在小B的面前,依次编号为1..n,编号为i的食物大小为 a[i] ,即足够小B吃 a[i] 口。小B每次会吃两口,这两口要么是编号相同的美食,要么是编号之差的绝对值为1的美食。小B想知道,她最多能吃几次?【输入描述】第1行一个正整数n,表示美食个数接下来n行,第i行一个整数a[i],表示编号为i的美食的大小【输出描述】...原创 2019-03-10 19:35:32 · 554 阅读 · 0 评论 -
Convert to Ones(CF-998C)
Problem DescriptionYou've got a string a1,a2,…,an, consisting of zeros and ones.Let's call a sequence of consecutive elements ai,ai + 1,…, aj (1≤ i≤ j≤ n) a substring of string a.You can apply ...原创 2018-08-26 16:28:20 · 257 阅读 · 0 评论 -
Sequence(BZOJ-1345)
Problem Description对于一个给定的序列a1,…,an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一个比原来序列短的新序列。这一操作的代价是max(ai,ai+1)。进行n-1次该操作后,可以得到一个长度为1的序列。我们的任务是计算代价最小的reduce操作步骤,将给定的序列变成长度为1的序列...原创 2019-02-11 20:02:09 · 208 阅读 · 0 评论 -
处女座的训练
【题目描述】处女座靠着自己的家教本领赚够了去比赛的钱,于是开启了疯狂训练。在每个夜深人静第二天不收作业的夜晚,他都会开始刷题。"今日又是一个刷题的夜晚。"他挑选了n道题开始刷,而题太多,刷不掉,理还乱(呜呜)、自己没有解决的题目每分钟都会给他带来bi的疲倦值,而解决每一道题目都需要花费ai 分钟的时间。当然,处女座一般都是考虑清楚了再写题的,所以他在写题的时候都会精神抖擞,也就...原创 2019-01-26 21:58:41 · 419 阅读 · 0 评论 -
处女座的期末复习
【题目描述】快要期末考试了,处女座现在有n门课程需要考试,每一门课程需要花ai小时进行复习,考试的起始时间为bi,处女座为了考试可以不吃饭不睡觉,处女座想知道他能否复习完所有的科目(即在每一门考试之前复习完该科目)。每一门课的考试时间都为两小时。【输入描述】第一行一个整数n第二行n个整数a1,a2,…,an,表示每门课需要复习的时间第三行n个整数b1,b2,…,bn,表示每门...原创 2019-01-24 21:51:29 · 308 阅读 · 0 评论 -
超级赛亚ACMer(HDU-5246)
Problem Description百小度是一个ACMer,也是一个超级赛亚人,每个ACMer都有一个战斗力,包括百小度。
所谓超级赛亚人的定义,是说如果在对抗中刚好接近极限状态,那就会激发斗志,实力提升.具体来说,就是百小度现在要接受一些ACMer的挑战了,这些ACMer有n个人,第i个人的战斗力是a[i]。
百小度接下来可以自主安排与这n...原创 2019-01-24 11:06:50 · 497 阅读 · 0 评论 -
Minimum Value Rectangle(CF-1027C)
Problem DescriptionYou have nn sticks of the given lengths.Your task is to choose exactly four of them in such a way that they can form a rectangle. No sticks can be cut to pieces, each side of t...原创 2018-08-24 13:50:43 · 346 阅读 · 0 评论 -
Annoying Present(CF-1009C)
Problem DescriptionAlice got an array of length nn as a birthday present once again! This is the third year in a row!And what is more disappointing, it is overwhelmengly boring, filled entirely w...原创 2018-08-23 20:30:28 · 295 阅读 · 0 评论 -
项链
【题目描述】小B想给她的新项链染色。现在有m种颜色,对于第i种颜色,小B有a_i单位的颜料,每单位颜料可以染项链的一个珠子;同时,小B对于第i种颜色的喜爱度为b_i。已知项链有n个珠子,求染色后每个珠子的颜色的喜爱度之和的最大值。(每个珠子只能至多被染一次,不被染色则喜爱度为0) 【输入描述】第一行两个数n,m第二行m个数a_i第三行m个数b_i【输出描述】...原创 2019-03-10 19:21:46 · 366 阅读 · 0 评论 -
小a与"204"
【题目描述】小a非常喜欢204这个数字,因为′a′+′k′=204。现在他有一个长度为n的序列,其中只含有2,0,4这三种数字设ai为序列中第i个数,你需要重新排列这个数列,使得 最大(公式的含义是:每个数与前一个数差的平方的和)注意:我们默认a0=0【输入描述】第一行一个整数n接下来一行n个整数,第i个数表示ai【输出描述】输出一个整数,表示 的最大值...原创 2019-07-16 18:00:29 · 279 阅读 · 0 评论 -
种树(信息学奥赛一本通-T1423)
【题目描述】现在我们国家开展新农村建设,农村的住房建设纳入了统一规划,统一建设,政府要求每一住户门口种些树。门口路边的地区被分割成块,并被编号成1..N。每个部分为一个单位尺寸大小并最多可种一棵树。每个居民房子门前被指定了三个号码B,E,T。这三个数表示该居民想在B和E之间最少种T棵树。当然,B≤E,居民必须记住在指定区不能种多于区域地块数的树,所以T≤E-B+l。居民们想种树的各自区域可以...原创 2019-07-20 11:02:17 · 1973 阅读 · 0 评论 -
活动安排(信息学奥赛一本通-T1422)
【题目描述】设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si<fi。如果选择了活动i,则它在半开时间区间[si,fi)内占用资源。若区间[si,fi)与区间[sj,fj)不相交,则称活动ii与活动jj是相容的。也就是说,当si≥fj或...原创 2019-07-20 10:52:21 · 1956 阅读 · 0 评论 -
Stay Real(HDU-6645)
Problem DescriptionIn computer science, a heap is a specialized tree-based data structure which is essentially an almost complete tree that satisfies the heap property: in a min heap, for any given...原创 2019-10-11 10:55:21 · 356 阅读 · 0 评论 -
Summarize to the Power of Two(CF-1005C)
Problem DescriptionA sequence a1,a2,…,an is called good if, for each element aiai, there exists an element ajaj (i≠j) such that ai+aj is a power of two (that is, 2d for some non-negative integer dd...原创 2018-08-06 07:54:26 · 394 阅读 · 0 评论 -
Game(HDU-6669)
Problem Description度度熊在玩一个好玩的游戏。游戏的主人公站在一根数轴上,他可以在数轴上任意移动,对于每次移动,他可以选择往左或往右走一格或两格。现在他要依次完成 n个任务,对于任务 i,只要他处于区间 [ai,bi] 上,就算完成了任务。度度熊想知道,为了完成所有的任务,最少需要移动多少次?度度熊可以任意选择初始位置。Input第一行一个整数 T...原创 2019-08-19 09:42:05 · 347 阅读 · 0 评论 -
Merging Two Decks(CF-234H)
Problem DescriptionThere are two decks of cards lying on the table in front of you, some cards in these decks lay face up, some of them lay face down. You want to merge them into one deck in which ...原创 2019-07-31 13:22:14 · 284 阅读 · 0 评论 -
糖果传递(信息学奥赛一本通-T1432)
【题目描述】有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。【输入】第一行一个正整数n≤1000000,表示小朋友的个数.接下来n行,每行一个整数ai,表示第i个小朋友得到的糖果的颗数.【输出】求使所有人获得均等糖果的最小代价。【输入样例】41254【输出样例】4【源程序】#includ...原创 2019-07-22 15:26:58 · 1504 阅读 · 0 评论 -
钓鱼(信息学奥赛一本通-T1431)
【题目描述】在一条水平路边,有nn个钓鱼湖,从左到右编号为 1,2,…,n。佳佳有HH个小时的空余时间,他希望利用这个时间钓到更多的鱼。他从1出发,向右走,有选择的在一些湖边停留一定的时间(是55分钟的倍数)钓鱼。最后在某一个湖边结束钓鱼。佳佳从第i个湖到第i+1个湖需要走5×Ti分钟路,还测出在第i个湖停留,第一个5分钟可以钓到Fi 条鱼,以后每再钓...原创 2019-07-22 13:47:15 · 1770 阅读 · 0 评论 -
家庭作业(信息学奥赛一本通-T1430)
【题目描述】老师在开学第一天就把所有作业都布置了,每个作业如果在规定的时间内交上来的话才有学分。每个作业的截止日期和学分可能是不同的。例如如果一个作业学分为10,要求在6天内交,那么要想拿到这10学分,就必须在第6天结束前交。每个作业的完成时间都是只有一天。例如,假设有7次作业的学分和完成时间如下:作业号 1 2 3 4 5 6 7期限...原创 2019-07-22 11:16:51 · 2000 阅读 · 1 评论 -
整数区间(信息学奥赛一本通-T1324)
【题目描述】请编程完成以下任务:1.从文件中读取闭区间的个数及它们的描述;2.找到一个含元素个数最少的集合,使得对于每一个区间,都至少有一个整数属于该集合,输出该集合的元素个数。【输入】首行包括区间的数目n,1≤n≤10000,接下来的n行,每行包括两个整数a,b,被一空格隔开,0≤a≤b≤10000,它们是某一个区间的开始值和结束值。【输出】第一行集合元素的个数,对...原创 2018-05-12 19:05:35 · 3905 阅读 · 0 评论 -
统计数字(信息学奥赛一本通-T1239)
【题目描述】某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5∗10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。【输入】第一行是整数 n,表示自然数的个数;第2~n+1每行一个自然数。【输出】包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出...原创 2018-05-17 21:47:22 · 5193 阅读 · 0 评论 -
线段(信息学奥赛一本通-T1429)
【题目描述】在一个数轴上有n条线段,现选取其中k条线段使得这k条线段两两没有重合部分,问最大的k为多少?【输入】第一行为一个正整数n,下面n行每行2个数字ai,bi,描述每条线段。【输出】输出文件仅包括1个整数,为k的最大值。【输入样例】30 22 41 3【输出样例】2【源程序】#include<iostream>#inclu...原创 2019-07-22 08:00:49 · 1517 阅读 · 1 评论 -
数列分段(信息学奥赛一本通-T1428)
【题目描述】对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。【输入】第1行包含两个正整数N,M,表示了数列A[i]的长度与每段和的最大值;第2行包含N个空格隔开的非负整数A[i],如题目所述。【输出】一个正整数,输出最少划分的段数。【输入样例】5 64 2 4 5 1...原创 2019-07-22 07:46:49 · 1220 阅读 · 0 评论 -
数列极差(信息学奥赛一本通-T1427)
【题目描述】在黑板上写了N个正整数作成的一个数列,进行如下操作:每一次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,如此下去直至黑板上剩下一个数,在所有按这种操作方式最后得到的数中,最大的max,最小的为min,则该数列的极差定义为M=max−min。【输入】第一行,一个数为N;第二行,N个数。【输出】输出极差。【输入样例】31 2 3【输出样例...原创 2019-07-22 07:31:40 · 1586 阅读 · 0 评论 -
智力大冲浪(信息学奥赛一本通-T1426)
【题目描述】小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的。接下来主持人宣布了比赛规则: 首先,比赛时间分为n个时段(n≤500),它又给出了很多小游戏,每个小游戏都必须在规定期限ti前完成(1≤ti≤n)。如果一个游戏没能在规定期限前完成,则要从奖励费m元中扣去一部分钱wi,wi为...原创 2019-07-21 21:10:21 · 1504 阅读 · 0 评论 -
喷水装置(信息学奥赛一本通-T1424)
【题目描述】长L 米,宽 WW 米的草坪里装有 n 个浇灌喷头。每个喷头都装在草坪中心线上(离两边各 W/2 米)。我们知道每个喷头的位置(离草坪中心线左端的距离),以及它能覆盖到的浇灌范围。请问:如果要同时浇灌整块草坪,最少需要打开多少个喷头?【输入】输入包含若干组测试数据。第一行一个整数 T 表示数据组数;每组数据的第一行是整数 n、L和 W;接下来的 n ...原创 2019-07-21 20:32:44 · 1467 阅读 · 0 评论 -
Cutting(CF-998B)
Problem DescriptionThere are a lot of things which could be cut — trees, paper, "the rope". In this problem you are going to cut a sequence of integers.There is a sequence of integers, which cont...原创 2018-08-26 16:23:18 · 380 阅读 · 0 评论 -
Balloons(CF-998A)
Problem DescriptionThere are quite a lot of ways to have fun with inflatable balloons. For example, you can fill them with water and see what happens.Grigory and Andrew have the same opinion. So,...原创 2018-08-26 16:18:00 · 363 阅读 · 0 评论 -
排队接水(信息学奥赛一本通-T1319)
【题目描述】有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。【输入】共两行,第一行为n(1≤n≤1000);第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。【输出】有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结...原创 2018-05-12 19:12:21 · 7802 阅读 · 4 评论 -
书架(信息学奥赛一本通-T1228)
【题目描述】John最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。John共有N头奶牛(1≤N≤20,000),每头奶牛有自己的高度Hi(1≤Hi≤10,000),N头奶牛的总高度为S。书架高度为B(1≤B≤S<2,000,000,007)。为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然若奶牛越多则危...原创 2018-05-13 13:32:01 · 4609 阅读 · 4 评论 -
Ride to Office(信息学奥赛一本通-T1227)
【题目描述】起点与终点相隔4500米。现Charley 需要从起点骑车到终点。但是,他有个习惯,沿途需要有人陪伴,即以相同的速度, 与另外一个人一起骑。而当他遇到以更快的速度骑车的人时,他会以相应的速度跟上这个更快的人。先给定所有与Charley 同路的人各自的速度与出发时间,问Charley 以这种方式跟人,骑完4500米需要多少时间。得出的结果若是小数,则向上取整。【输入】输入若...原创 2018-05-13 13:33:06 · 3872 阅读 · 2 评论