HDU - 5248 序列变换 (二分&技巧)
2016-04-08 22:09
260 查看
HDU - 5248
序列变换
Submit Status
Description
给定序列
,
要求改变序列A中的某些元素,形成一个严格单调的序列B(严格单调的定义为:
)。
我们定义从序列A到序列B变换的代价为
。
请求出满足条件的最小代价。
注意,每个元素在变换前后都是整数。
Input
第一行为测试的组数
.
对于每一组:
第一行为序列A的长度
,第二行包含N个数,
.
序列A中的每个元素的值是正整数且不超过
。
Output
对于每一个测试样例,输出两行:
第一行输出:"Case #i:"。i代表第 i 组测试数据。
第二行输出一个正整数,代表满足条件的最小代价。
Sample Input
2
2
1 10
3
2 5 4
Sample Output
Case #1:
0
Case #2:
1
Source
2015年百度之星程序设计大赛 - 初赛(1)
//思路:参考大神的机智二分
二分搜索:在0~1e6的范围找到最小的max (ai - bi),也就是使得p + 1 <= a[i] + c or a[i] - c
序列变换
Time Limit: 2000MS | Memory Limit: 32768KB | 64bit IO Format: %I64d & %I64u |
Description
给定序列
,
要求改变序列A中的某些元素,形成一个严格单调的序列B(严格单调的定义为:
)。
我们定义从序列A到序列B变换的代价为
。
请求出满足条件的最小代价。
注意,每个元素在变换前后都是整数。
Input
第一行为测试的组数
.
对于每一组:
第一行为序列A的长度
,第二行包含N个数,
.
序列A中的每个元素的值是正整数且不超过
。
Output
对于每一个测试样例,输出两行:
第一行输出:"Case #i:"。i代表第 i 组测试数据。
第二行输出一个正整数,代表满足条件的最小代价。
Sample Input
2
2
1 10
3
2 5 4
Sample Output
Case #1:
0
Case #2:
1
Source
2015年百度之星程序设计大赛 - 初赛(1)
//思路:参考大神的机智二分
二分搜索:在0~1e6的范围找到最小的max (ai - bi),也就是使得p + 1 <= a[i] + c or a[i] - c
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<cmath> #include<map> #include<queue> #include<stack> #define INF 0x3f3f3f3f #define ull unsigned lonb long #define ll long long #define IN __int64 #define N 1000010 #define M 1000000007 using namespace std; int n; int a ; bool judge(int mid) { int p=-1e6; for(int i=1;i<=n;i++) { int m=max(p+1,a[i]-mid); if(m>a[i]+mid) return false; p=m; } return true; } int main() { int T=1,t,i,j,k; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); int l=0,r=1e6; while(l<r) { int mid=(l+r)>>1; if(judge(mid)) r=mid; else l=mid+1; } printf("Case #%d:\n%d\n",T++,l); } return 0; }
相关文章推荐
- linux初学者指南-基本配置
- javascript动态在<div>中加载内容
- distinct 多列详解
- 网站性能优化之开启服务器端http压缩
- WKWebView与JS交互,UIWebView+JavascriptCore和JS交互
- 使用两个队列实现一个栈
- Oracle Study之-Oracle 11g OCM考试(1)
- 决胜九月:java常见面试题总结
- 个人
- 0408~送给小伙伴的汉堡包
- 2016蓝桥杯B组——NO.6
- 名企动态网站开发--jQuery实现flash动画效果
- C++引用详解
- 腾讯统一播放器调用方案
- mysql安装记录
- javascript内置对象
- leetcode 55. Jump Game
- 树中的两个结点之间的距离
- javascript打算看的书
- 双重循环排序与冒泡排序算法