题目名称 1446. [UVa 11729] 突击战
输入输出 commando.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 64 MiB
测试数据 5
题目来源 Gravatar超级傲娇的AC酱 于2013-11-23加入
开放分组 全部用户
提交状态
分类标签
动态规划 排序 搜索法 贪心 UVa
分享题解
通过:101, 提交:178, 通过率:56.74%
Gravatarnew ioer 100 0.052 s 4.05 MiB C++
GravatarkZime 100 0.057 s 0.56 MiB C++
GravatarLGLJ 100 0.058 s 0.63 MiB C++
GravatarJanis 100 0.071 s 0.26 MiB C++
Gravatartest 100 0.087 s 0.32 MiB C++
Gravatarking'back 100 0.090 s 0.31 MiB C++
Gravatarking'back 100 0.090 s 0.31 MiB C++
Gravatar雾茗 100 0.094 s 0.32 MiB C++
GravatarrpCardinal 100 0.101 s 0.30 MiB C++
GravatarrpCardinal 100 0.101 s 0.30 MiB C++
关于 突击战 的近10条评论(全部评论)
贪心,n个士兵,n个任务。。。。
数据过水。。。。
Gravatarking'back
2016-11-16 11:00 8楼
这题需要证一个贪心性质:总是优先布置执行时间长的任务可以得到最优解。
首先考虑最后一个任务。因为所有任务是连续交待的,所以 最后一个任务完成的时间=所有任务的布置时间之和+最后一个任务的布置时间。
很显然,若最后一个任务执行的时间不是最短的,则把执行时间最短的任务和最后一个任务交换,所得的方案至少不会更差。
所以执行用时最短的任务要放在最后交待。
前面的(n-1)个任务也满足这个性质,证毕。(毫不严谨。。。)
Gravatarliu_runda
2016-03-30 17:42 7楼
Gravatar筽邝
2014-08-23 15:07 6楼
Gravatardigital-T
2014-08-02 21:41 5楼
VIP 好屌
GravatarOI永别
2014-05-01 17:10 4楼
这题都不用重载运算符
Gravatar752199526
2014-04-30 20:14 3楼
回复 @Mike's learning :
请看标题下的文件名:commando.in/out。由于题库中题目文件名不能重复因此可能与原题有别
Gravatarcstdio
2013-11-24 22:36 2楼
输入输出文件到底该叫啥名字啊!
GravatarFoolMike
2013-11-24 16:05 1楼

1446. [UVa 11729] 突击战

★   输入文件:commando.in   输出文件:commando.out   简单对比
时间限制:1 s   内存限制:64 MiB

【题目描述】

你有$n$个部下,每个部下需要完成一项任务。第$i$个部下需要你花$B_i$分钟交代任务,然后他会立刻独立地,无间断的执行$J_i$分钟后完成任务。你需要交代任务的顺序,使得所有的任务尽早执行完毕。注意,不能同时给2个部下交代任务,但是部下可以同时执行各自的任务。

【输入格式】

输入数据包括多组数据,每组数据的第一行为部下的个数N(1≤N≤1000);以下N行有2个正整数B和J(1≤B≤1000,1≤J≤1000),即交代任务的时间和执行任务的时间。输入结束标志符为N=0。

【输出格式】commando.in

对于每组数据,输出(以第i组数据为例):

Case i: Time

【样例输入】commando.out

3
2 5
3 2
2 1
3
3 3
4 4
5 5
0

【样例输出】

Case 1: 8
Case 2: 15

【来源】

From UVa 11729 Commando War