UVA 11389(贪心问题)
UVA 11389
Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu
Description
|
II U C ONLINE C ON TEST 2 008 |
|
|
The Bus Driver Problem |
|
|
Input: standard input Output: standard output |
|
|
In a city there are n bus drivers. Also there are n morning bus routes & n afternoon bus routes with various lengths. Each driver is assigned one morning route & one evening route. For any driver, if his total route length for a day exceeds d, he has to be paid overtime for every hour after the first d hours at a flat r taka / hour. Your task is to assign one morning route & one evening route to each bus driver so that the total overtime amount that the authority has to pay is minimized. |
|
|
Input |
|
|
The first line of each test case has three integers n, d and r, as described above. In the second line, there are n space separated integers which are the lengths of the morning routes given in meters. Similarly the third line has n space separated integers denoting the evening route lengths. The lengths are positive integers less than or equal to 10000. The end of input is denoted by a case with three 0 s. |
|
|
Output |
|
|
For each test case, print the minimum possible overtime amount that the authority must pay. |
|
|
Constraints |
|
|
- 1 ≤ n ≤ 100 - 1 ≤ d ≤ 10000 - 1 ≤ r ≤ 5 |
|
|
Sample Input |
Output for Sample Input |
|
2 20 5 10 15 10 15 2 20 5 10 10 10 10 0 0 0 |
50 0 |
|
|
|
|
|
|
题解:本题是解决实际问题,有n个上午的任务和下午的任务,分配给司机,如果工作总时间超过d,超过的部分要给加班费;
现在让你安排任务,问最小的加班分花费。
分析:贪心问题。将两个任务分别按递增和递减序排序,每个对应边号的一组即可。
设序列中的两组配对的元素为m1,a1,m2,a2 且 m1≤m2,a1≤a2;
则配对方式<m1,a2>,<m2,a1>优于<m1,a1>,<m2,a2>
代码如下:
#include<iostream>
#include<algorithm>
using namespace std; int a[],b[]; int main()
{ int i,x,y,z;
while(cin>>x>>y>>z&&x&&y&&z)
{
int s=;
for(i=; i<=x; i++)
{
cin>>a[i];
}
for(int i=; i<=x; i++)
{
cin>>b[i];
}
sort(a,a+x);
sort(b,b+x);
for(i=; i<=x; i++)
{
if(a[i]+b[x+-i]>y)
{
s=(a[i]+b[x-i+]-y)*z;
s+=s;
}
}
cout<<s<<endl;
}
return ;
}
咳咳,其实上面是错的。。虽然可以输出正确结果,但是提交不会AC。
以下是正确的代码,请注意改动的地方!!
#include<iostream>
#include<algorithm>
using namespace std;
int a[],b[];
int main()
{ int i,j,k,x,y,z;
while(cin>>x>>y>>z&&x&&y&&z)
{
int s=;
for(i=; i<=x; i++)
{
cin>>a[i];
}
for(int k=; k<=x; k++)
{
cin>>b[k];
}
sort(a,a+x);
sort(b,b+x);
for(int j=; j<=x; j++)
{
if(a[j]+b[x+-j]>y)
{
s=(a[j]+b[x-j+]-y)*z;
s+=s;
}
}
cout<<s<<endl;
}
return ;
}
可以仔细想一想为什么会出现这样的情况
UVA 11389(贪心问题)的更多相关文章
- UVa 11389 (贪心) The Bus Driver Problem
题意: 有司机,下午路线,晚上路线各n个.给每个司机恰好分配一个下午路线和晚上路线. 给出行驶每条路线的时间,如果司机开车时间超过d,则要付加班费d×r. 问如何分配路线才能使加班费最少. 分析: 感 ...
- UVA 11389 The Bus Driver Problem 贪心水题
题目链接:UVA - 11389 题意描述:有n个司机,n个早班路线和n个晚班路线,给每个司机安排一个早班路线和一个晚班路线,使得每个早班路线和晚班路线只属于一个司机.如果一个司机早班和晚班总的驾驶时 ...
- 01_传说中的车(Fabled Rooks UVa 11134 贪心问题)
问题来源:刘汝佳<算法竞赛入门经典--训练指南> P81: 问题描述:你的任务是在n*n(1<=n<=5000)的棋盘上放n辆车,使得任意两辆车不相互攻击,且第i辆车在一个给定 ...
- uva 10154 贪心+dp
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- UVa 1467 (贪心+暴力) Installations
题意: 一共有n项服务,每项服务有安装的时间s和截止时间d.对于每项任务,如果有一项超出截止时间,惩罚值为所超出时间的长度.问如何安装才能使惩罚值最大的两个任务的惩罚值之和最小. 分析: 如果是求总惩 ...
- UVa 11389 - The Bus Driver Problem 难度:0
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
- Party Games UVA - 1610 贪心
题目:题目链接 思路:排序后处理到第一个不同的字符,贪心一下就可以了 AC代码: #include <iostream> #include <cstdio> #include ...
- UVa 1149 (贪心) Bin Packing
首先对物品按重量从小到大排序排序. 因为每个背包最多装两个物品,所以直觉上是最轻的和最重的放一起最节省空间. 考虑最轻的物品i和最重的物品j,如果ij可以放在一个包里那就放在一起. 否则的话,j只能自 ...
- 【策略】UVa 11389 - The Bus Driver Problem
题意: 有司机,下午路线,晚上路线各n个.给每个司机恰好分配一个下午路线和晚上路线.给出行驶每条路线的时间,如果司机开车时间超过d,则要付加班费d×r.问如何分配路线才能使加班费最少. 虽然代码看起来 ...
随机推荐
- THOMAS MASON--英国顶级衬衫面料品牌
欧尚时光 THOMAS MASON--英国顶级衬衫面料品牌 2014-01-26 欧尚时光 今天为大家介绍英国顶级衬衫面料厂商:THOMAS MASON(托马斯·梅森).THOMAS MAS ...
- iOS状态栏颜色
下面截图给出修改 iOS 状态栏颜色的 4 种方式 Target.png Info.plist.png Storyboard.png code.png 其中第四张图中的代码,直接写在你的任何一个 Vi ...
- 深入剖析Java中的自动装箱和拆箱过程
深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱 ...
- Solr多核的配置
Solr 多核(MultiCore)配置 Solr Multicore意义 Solr Multicore 是 solr 1.3 的新特性.其目的一个solr实例,可以有多个搜索应用.< xmln ...
- OpenMP与C++:事半功倍地获得多线程的好处
来源:IIEEG 01-28-2011 在并行计算领域有一个广为流传的笑话——并行计算是未来之事并且永远都是.这个小笑话几十年来一直都是对的.一种类似的观点在计算机架构社区中流传,处理器时钟速度的极限 ...
- Discuz X2.5 用户名包含被系统屏蔽的字符[解决方法]
/uc_client/data/cache/badwords.php文件里的内容 删除并用 utf-8格式保存
- [Javascript] Logging Pretty-Printing Tabular Data to the Console
Learn how to use console.table to render arrays and objects in a tabular format for easy scanning ov ...
- 自己动手写shell之chgrp,chown,chmod
1.chgrp实现 #include <grp.h> #include <unistd.h> void chgrp(char * groupname,char * filena ...
- EventLoop的设计
1. Event Loop作为一个IO线程,通过IO复用来处理事件 2. 为了保证线程安全,任何需要修改IO线程资源的工作都交给IO线程亲自来做 3. 为了IO线程与其他线程互调,需要设计一个even ...
- OD: Kernel Vulnerabilities
内核漏洞概述 内核漏洞的分类 运行在 Ring0 上的操作系统内核.设备驱动.第三方驱动能共享同一个虚拟地址空间,可以完全访问系统空间的所有内存,而不像用户态进程那样拥有独立私有的内存空间.由于内核程 ...