标签:
HDOJ题目地址:传送门

1 2 2 2 5 1 2 3 4
Case #1: 0
题意:一个人去旅行,路上有沼泽和平路,当走平路是增加a点体力,当走沼泽时消耗b点体力,求最开始最少要携带多少点体力
#include<iostream>
#include<stdio.h>
#include<memory.h>
#include<algorithm>
using namespace std;
struct Node{
int begin;
int end;
int chazhi;
}zhaoze[101];
bool cmp(Node a,Node b){
if(a.begin<b.begin)
return true;
return false;
}
int main(){
int n,m,i,a,b,l,kaishi,jieshu,result,temp,index=1;
cin>>n;
while(n--){
cin>>m>>a>>b>>l;
for(i=0;i<m;i++){
cin>>zhaoze[i].begin>>zhaoze[i].end;
zhaoze[i].chazhi=zhaoze[i].end-zhaoze[i].begin;
}
sort(zhaoze,zhaoze+m,cmp);
result=0;
temp=0;
kaishi=0;
jieshu=0;
for(i=0;i<m;i++){
temp=temp+(zhaoze[i].begin-jieshu)*b-zhaoze[i].chazhi*a;
jieshu=zhaoze[i].end;
if(result>temp){
result=temp;
}
}
temp+=(l-jieshu)*b;
if(result>temp){
result=temp;
}
if(result<0){
printf("Case #%d: %d\n",index,-result);
}else{
printf("Case #%d: 0\n",index);
}
index++;
}
}ACM--过沼泽--模拟--HDOJ 5477--A Sweet Journey
标签:
原文地址:http://blog.csdn.net/qq_26891045/article/details/51525795