例题1.2 突击战 UVa11729

1.题目描述:

2.解题思路:本题利用贪心法解决。由于让总时间最短,因此可以先安排执行时间最长的任务,因为安排任务的总时间是无法改变的,总时间取决于执行任务的最长时间,因此应该先安排执行时间最长的任务。具体证明自己画图即可得证。

3.代码:

#define _CRT_SECURE_NO_WARNINGS #include<iostream>#include<algorithm>#include<string>#include<sstream>#include<set>#include<vector>#include<stack>#include<map>#include<queue>#include<deque>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>#include<ctime>#include<functional>using namespace std;typedef pair<int, int> P;priority_queue<P,vector<P>, less<P> >q;//执行时间最长的先出列int n;int main(){//freopen("t.txt", "r", stdin);int rnd = 0;while (~scanf("%d", &n)&&n){while (!q.empty())q.pop();int a, b;int ans = 0;//总时间int start = 0;//开始时间for (int i = 0; i < n; i++){cin >> a >> b;q.push(P(b, a));}while (!q.empty()){P u = q.top(); q.pop();int a = u.first, b = u.second;start += b;if (!ans)ans += a + b;if (start + a > ans)ans += (start + a – ans);}printf("Case %d: ", ++rnd);cout << ans << endl;}return 0;}

,劝君更尽一杯酒,西出阳关无故人。

例题1.2 突击战 UVa11729

相关文章:

你感兴趣的文章:

标签云: