A Sweet Journey
2015-09-26 14:30
190 查看
A Sweet Journey
Problem Description
Master Di plans to take his girlfriend for a travel by bike. Their journey, which can be seen as a line segment of length L, is a road of swamps and flats. In the swamp, it takes A point strengths per meter for Master Di to ride; In the flats, Master Di will regain B point strengths per meter when riding. Master Di wonders:In the beginning, he needs to prepare how much minimum strengths. (Except riding all the time,Master Di has no other choice)
Input
In the first line there is an integer t (1≤t≤50), indicating the number of test cases.
For each test case:
The first line contains four integers, n, A, B, L.
Next n lines, each line contains two integers: Li,Ri, which represents the interval [Li,Ri] is swamp.
1≤n≤100,1≤L≤105,1≤A≤10,1≤B≤10,1≤Li
Problem Description
Master Di plans to take his girlfriend for a travel by bike. Their journey, which can be seen as a line segment of length L, is a road of swamps and flats. In the swamp, it takes A point strengths per meter for Master Di to ride; In the flats, Master Di will regain B point strengths per meter when riding. Master Di wonders:In the beginning, he needs to prepare how much minimum strengths. (Except riding all the time,Master Di has no other choice)
Input
In the first line there is an integer t (1≤t≤50), indicating the number of test cases.
For each test case:
The first line contains four integers, n, A, B, L.
Next n lines, each line contains two integers: Li,Ri, which represents the interval [Li,Ri] is swamp.
1≤n≤100,1≤L≤105,1≤A≤10,1≤B≤10,1≤Li
[code]#include <iostream> #include <cstdio> #include <cstring> using namespace std; int a[100010]; int main() { int T; cin>>T; for(int k=1; k<=T; k++) { memset(a,0,sizeof(a));//0代表休息,1代表耗费力气 int n,x,y,l; int zuo,you; scanf("%d%d%d%d",&n,&x,&y,&l); for(int i=0; i<n; i++) { scanf("%d%d",&zuo,&you); for(int j=zuo; j<=you-1; j++)//将区间简化为左端点记录在数组中; { a[j]=1; } } int po=0,min=y; for(int i=0; i<l; i++) { if(a[i]==0) po+=y;//休息,加体力; if(a[i]==1) po-=x;//消耗体力; if(min>po) min=po;//找出最小临界点即可; } printf("Case #%d: ",k); if(min>=0) printf("0\n");//最小为正就不需要带体力值; if(min<0) printf("%d\n",-min); } return 0; }
相关文章推荐
- 如何修改SpriteBuilder中的按钮禁用启用状态
- handlebars学习笔记
- myeclipse项目转maven项目
- iOS开发:集合视图 UICollectionView
- android开发之android:process属性_application中onCreate执行多次
- fzu 2150 Fire Game 【身手BFS】
- 左右HttpClient上传的方法来解决中国的乱码
- Eclipse常用插件
- 黑盒测试案例分析之等价类划分
- REST WebService
- vector中迭代器的用法
- PAT1044 火星数字
- AsyncTask的缺陷
- iOS事件捕捉与传递,响应者链
- 看书读书,必须少而精
- 【bzoj2134】【单选错选】【概率】
- 关于ssh 使用批注
- iOS基础-自定义视图、视图控制器
- ASP.NET显示渐变图片实现方法
- 网易163邮箱配置-iOS、OS X邮箱客户端