博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
序列变换(二分,最小化最大值)
阅读量:6957 次
发布时间:2019-06-27

本文共 1598 字,大约阅读时间需要 5 分钟。

序列变换

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 950    Accepted Submission(s): 438

Problem Description
给定序列
A={
A1,A2,...,An}
, 要求改变序列A中的某些元素,形成一个严格单调的序列B(严格单调的定义为:Bi<Bi+1,1i<N)。
我们定义从序列A到序列B变换的代价为cost(A,B)=max(|AiBi|)(1iN)
请求出满足条件的最小代价。
注意,每个元素在变换前后都是整数。
 

 

Input
第一行为测试的组数
T(1T10).
对于每一组: 第一行为序列A的长度N(1N105),第二行包含N个数,A1,A2,...,An. 序列A中的每个元素的值是正整数且不超过106
 

 

Output
对于每一个测试样例,输出两行:
第一行输出:"Case #i:"。i代表第 i 组测试数据。
第二行输出一个正整数,代表满足条件的最小代价。
 

 

Sample Input
2 2 1 10 3 2 5 4
 

 

Sample Output
Case #1: 0 Case #2: 1

题解:注意范围是0到1e5,脑子抽了,1到1e5半天没发现错误:

代码:

#include
#include
#include
#include
#include
using namespace std;const int MAXN = 1e5 + 100;int num[MAXN];int arr2[MAXN];int N;bool js(int x){ int pre, cur; pre = num[0]; for(int i = 1; i <= N; i++){ cur = num[i]; if(cur > pre){ cur = max(cur - x, pre + 1); } else{ if(cur + x <= pre)return false; cur = pre + 1; } pre = cur; } return true;}int erfen(int l, int r){ int mid, ans = N; while(l <= r){ mid = (l + r) >> 1; if(js(mid)){ ans = mid; r = mid - 1; } else l = mid + 1; } return ans;}int main(){ int T, kase = 0; scanf("%d", &T); num[0] = -0x3f3f3f3f; while(T--){ scanf("%d", &N); for(int i = 1; i <= N; i++){ scanf("%d", num + i); } printf("Case #%d:\n%d\n", ++kase, erfen(0, 3000000)); } return 0;}

 

转载地址:http://svmil.baihongyu.com/

你可能感兴趣的文章
新零售时代,零售行业如何构建互联网架构
查看>>
网站如何接入支付宝(转)
查看>>
制造业浪费为何高居不下?
查看>>
HDOJ 2024 C语言合法标识符
查看>>
GIF/PNG/JPG和WEBP/base64/apng图片优点和缺点整理(转)
查看>>
使用intellij idea搭建MAVEN+springmvc+mybatis框架
查看>>
How To Create A Local Repository For SUSE Linux
查看>>
iPhone X热销 苹果做了哪些用心良苦的事儿?
查看>>
[20170203]建立dataguard的standby控制文件
查看>>
spring依赖注入单元测试:expected single matching bean but found 2
查看>>
Java:JSON解析工具-org.json
查看>>
Apache Flink源码解析之stream-window
查看>>
40余项高科技亮相智慧城市科技酷品展
查看>>
让移动端用户体验出类拔萃的5种技巧
查看>>
处理同一页面中借助form+input[type=&quot;file&quot;]上传图片出现的input无法清空问题...
查看>>
nginx FastCGI模块(FastCGI)配置
查看>>
Redis安装和常用知识
查看>>
坚果智能影院实体布局再下一城 肇庆旗舰店火热开业
查看>>
背水一战 Windows 10 (21) - 绑定: x:Bind 绑定, x:Bind 绑定之 x:Phase, 使用绑定过程中的一些技巧...
查看>>
zk日常运维管理
查看>>