UVA11389巴士司机问题
生活随笔
收集整理的這篇文章主要介紹了
UVA11389巴士司机问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
? ? ? 有n個巴士司機,然后有2n個活,其中有n個是上午,n個是下午,每個自己都要選擇一個上午的和一個下午的,每個活都有駕駛距離,如果一個司機每天的駕駛距離大于d,那么超出的部分就要每個單位距離給加班費r,如果你是巴士司機老板,最少要付給這n個人的加班費是多少?
思路:
? ? ? 這個是水題了,白天活最終的晚上給一個最輕巧的活給他,其他的一次類推,這個很容易想到,不解釋了。
#include<stdio.h>
#include<algorithm>
#define N 100 + 5
using namespace std;
int bb[N] ,hh[N];
int main ()
{
? ?int n ,k ,r ,i ,Ans;
? ?while(~scanf("%d %d %d" ,&n ,&k ,&r) && n + k + r)
? ?{
? ? ? for(i = 1 ;i <= n ;i ++)
? ? ? {
? ? ? ? ?scanf("%d" ,&bb[i]);
? ? ? }
? ? ? for(i = 1 ;i <= n ;i ++)
? ? ? {
? ? ? ? ?scanf("%d" ,&hh[i]);
? ? ? ? ?hh[i] *= -1;
? ? ? }
? ? ??
? ? ? sort(bb + 1 ,bb + n + 1);
? ? ? sort(hh + 1 ,hh + n + 1);
? ? ? for(Ans = 0 ,i = 1 ;i <= n ;i ++)
? ? ? {
? ? ? ? ?hh[i] *= -1;
? ? ? ? ?int tmp = (bb[i] + hh[i]) - k;
? ? ? ? ?if(tmp > 0) Ans += tmp * r;
? ? ? }
? ? ? printf("%d\n" ,Ans);
? ?}
? ?return 0;
}
? ? ? 有n個巴士司機,然后有2n個活,其中有n個是上午,n個是下午,每個自己都要選擇一個上午的和一個下午的,每個活都有駕駛距離,如果一個司機每天的駕駛距離大于d,那么超出的部分就要每個單位距離給加班費r,如果你是巴士司機老板,最少要付給這n個人的加班費是多少?
思路:
? ? ? 這個是水題了,白天活最終的晚上給一個最輕巧的活給他,其他的一次類推,這個很容易想到,不解釋了。
#include<stdio.h>
#include<algorithm>
#define N 100 + 5
using namespace std;
int bb[N] ,hh[N];
int main ()
{
? ?int n ,k ,r ,i ,Ans;
? ?while(~scanf("%d %d %d" ,&n ,&k ,&r) && n + k + r)
? ?{
? ? ? for(i = 1 ;i <= n ;i ++)
? ? ? {
? ? ? ? ?scanf("%d" ,&bb[i]);
? ? ? }
? ? ? for(i = 1 ;i <= n ;i ++)
? ? ? {
? ? ? ? ?scanf("%d" ,&hh[i]);
? ? ? ? ?hh[i] *= -1;
? ? ? }
? ? ??
? ? ? sort(bb + 1 ,bb + n + 1);
? ? ? sort(hh + 1 ,hh + n + 1);
? ? ? for(Ans = 0 ,i = 1 ;i <= n ;i ++)
? ? ? {
? ? ? ? ?hh[i] *= -1;
? ? ? ? ?int tmp = (bb[i] + hh[i]) - k;
? ? ? ? ?if(tmp > 0) Ans += tmp * r;
? ? ? }
? ? ? printf("%d\n" ,Ans);
? ?}
? ?return 0;
}
總結
以上是生活随笔為你收集整理的UVA11389巴士司机问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UVA11384正整数序列(把123..
- 下一篇: UVA11427玩纸牌(全概率+递推)