hdoj 5477 A Sweet Journey (二分查找)
来源:互联网 发布:oppo r9怎么改3g网络 编辑:程序博客网 时间:2024/06/05 14:16
A Sweet Journey
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 729 Accepted Submission(s): 377
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<Ri≤L .
Make sure intervals are not overlapped which meansRi<Li+1 for each i (1≤i<n ).
Others are all flats except the swamps.
For each test case:
The first line contains four integers, n, A, B, L.
Next n lines, each line contains two integers:
Make sure intervals are not overlapped which means
Others are all flats except the swamps.
Output
For each text case:
Please output “Case #k: answer”(without quotes) one line, where k means the case number counting from 1, and the answer is his minimum strengths in the beginning.
Please output “Case #k: answer”(without quotes) one line, where k means the case number counting from 1, and the answer is his minimum strengths in the beginning.
Sample Input
12 2 2 51 23 4
Sample Output
Case #1: 0
Source
2015 ACM/ICPC Asia Regional Shanghai Online
慢慢的,对二分有了认识,二分就是先确定一个最小的可能范围 (但要满足条件),然后进行一分为二,判断中间值是否满足题意,
代码:
#include <iostream>#include <cstdio>using namespace std;int t,k,n,a,b,l;int s[100010],e[100010];int judge(int sum)//判断中间值是否可行{ int per=0; for(int i=1;i<=n;i++) { sum+=(s[i]-per)*b; sum-=(e[i]-s[i])*a; if(sum<0) return false; else per=e[i]; } return true;}int main(){ k=1; int left,right,mid,ans; scanf("%d",&t); while(t--) { scanf("%d%d%d%d",&n,&a,&b,&l); for(int i=1;i<=n;i++) { scanf("%d%d",&s[i],&e[i]); } left=0; right=l*10+1;//开始脑子短路,写成了2,而a b的值最大为10呢 while(right>=left) { mid=(left+right)>>1; if(judge(mid)) { ans=mid; right=mid-1; } else left=mid+1; } printf("Case #%d: %d\n",k++,ans); } return 0;}
0 0
- hdoj 5477 A Sweet Journey (二分查找)
- hdoj 5477 A Sweet Journey 【二分】
- 【HDU】5477---A Sweet Journey(二分)
- hdoj 5477 A Sweet Journey
- A Sweet Journey 【二分】
- ACM--过沼泽--模拟--HDOJ 5477--A Sweet Journey
- hdu 5477 A Sweet Journey(水)
- HDU 5477: A Sweet Journey
- hdu 5477 A Sweet Journey
- HDU 5477 A Sweet Journey
- HDU 5477 A Sweet Journey
- HDU 5477 A Sweet Journey
- HDU 5477 A Sweet Journey
- HDU 5477 A Sweet Journey
- hdu 5477 A Sweet Journey
- hdoj5477A Sweet Journey【二分】
- 5477 A Sweet Journey (贪心_上海网络赛)
- HDU 5477 A Sweet Journey(亚洲区水题)
- CSRF攻击介绍及防御
- 袁腾飞——夏王朝
- 内部类
- osx10.11下常用命令行工具安装&几个小问题
- [离散化+树状数组]逆序对
- hdoj 5477 A Sweet Journey (二分查找)
- 自我学习
- Java通过管道进行进程间通信
- Leetcode:85. Maximal Rectangle
- Metaspoilt简单攻击操作
- Java数据类型及类型转换
- composer centos下的安装教程
- arp欺骗
- 浅谈图片加载:逐行扫描VS交错扫描