贪心算法练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贪心算法

1.喷水装置(一)

描述

现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0

的圆被湿润,这有充足的喷水装置i(1

输入

第一行m表示有m组测试数据

每一组测试数据的第一行有一个整数数n,n表示共有n个喷水装置,随后的一行,有n个实数ri,ri表示该喷水装置能覆盖的圆的半径。

输出

输出所用装置的个数

样例输入

2

5

2 3.2 4 4.5 6

10

1 2 3 1 2 1.2 3 1.1 1 2

样例输出

2

5

根据日常生活知道,选择半径越大的装置,所用的数目越少。因此,可以先对半径排序,然后选择半径大的。另外,当装置刚好喷到矩形的顶点时,数目最少。此时只要装置的有效喷水距离的和不小于20时,输出此时的装置数目即可。

2.喷水装置(二)

时间限制:3000 ms | 内存限制:65535 KB

难度:4

描述

有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有

n(n<=10000)个点状的喷水装置,每个喷水装置i喷水的效果是让以它为中心半径为Ri的圆都被润湿。请在给出的喷水装置中选择尽量少的喷水装置,把整个草坪全部润湿。

输入

对于每一组输入,输出最多能够安排的活动数量。

每组的输出占一行

样例输入

2

2

1 10

10 11

3

1 10

10 11

11 20

样例输出

1

2

提示注意:如果上一个活动在T时间结束,下一个活动最早应该在T+1时间开始。

解题思路:这是一个贪心法中选择不相交区间的问题。先对活动结束时间从小到大排序,排序的同时活动的起始时间也要跟着变化。而且,结束时间最小的活动一定会安排,不然这段时间就白白浪费了。后一个活动的起始时间如果比前一个活动的结束时间大,即两个活动没有相交时间,就把这个活动也安排上。就这样一直找到结束时间最大的,输出时间数目即可。排序时可用下面的方法,排序的同时起始时间也跟着变了。

如果输入

0 6

3 4

1 9

2 8

则排序后的结果就是

3 4

0 6

2 8

1 9

Sample Output

3

5

4.Doing homework

问题描述:Ignatius比赛回来之后,每位老师给Ignatius一个交作业的最后期限,如果交不上去就扣分。每门作业都要一天时间完成,求最少扣多少分。先输入一个T表示有T组测试数据,接下来每组数据先输入一个N,代表有N个作业,然后输入两行,第一行表示每门作业要交的日期,第二行表示对应的如果不交这门作业要扣的分数。输出要扣的最少分数。

解题思路:先对日期从小到大排序,如果日期相同,则扣分多的排在前面。如果相同日期内有扣分多的,则就用前面做扣分少的作业的时间来做这门作业;如果没有比他小的,就扣这门作业的分。

Sample Input

3

3

3 3 3

10 5 1

3

1 3 1

6 2 3

7

1 4 6 4

2 4 3

3 2 1 7 6 5 4

Sample Output

3

5

5.过河问题

时间限制:1000 ms | 内存限制:65535 KB

难度:5

描述

在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,N人所需要的时间已知;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这N人尽快过桥。

6.摘枇杷

时间限制:2000 ms | 内存限制:65535 KB

难度:3

描述

理工学院的枇杷快熟了,ok,大家都懂得。而且大家都知道,学校的枇杷树都是一列一列的。现在小Y同学已经在筹划怎么摘枇杷了。现在我们假设有一列枇杷树,而且每棵枇杷树上枇杷果的数量小Y都已经知道了。

相关文档
最新文档