题意(中文的直接粘题意吧)
                                                                                      序列变换

Problem Description
给定序列A={A1,A2,...,An}, 要求改变序列A中的某些元素,形成一个严格单调的序列B(严格单调的定义为:Bi<Bi+1,1≤i<N)。

我们定义从序列A到序列B变换的代价为cost(A,B)=max(|Ai?Bi|)(1≤i≤N)。

请求出满足条件的最小代价。

注意,每个元素在变换前后都是整数。

Input
第一行为测试的组数T(1≤T≤10).

对于每一组:
第一行为序列A的长度N(1≤N≤105),第二行包含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

思路:

      思路简单一下就能想到,二分当前答案,对于当前答案,从头开始贪心,能小就尽可能的小就行了。


#include<stdio.h>
#include<string.h>int A[100005] ,B[100005];int maxx(int x ,int y)
{return x > y ? x : y;
}int jude(int k ,int n)
{for(int i = 1 ;i <= n ;i ++){if(i == 1) B[i] = A[i] - k;else{if(A[i] > B[i-1]) B[i] = maxx(B[i-1]+1 ,A[i] - k);else{if(A[i] + k > B[i-1]) B[i] = B[i-1]+1;else return 0;}}}return 1;
}int main ()
{int t ,n ,cas = 1 ,i;scanf("%d" ,&t);while(t--){scanf("%d" ,&n);for(i = 1 ;i <= n ;i ++)scanf("%d" ,&A[i]);int low = 0 ,up = 1000005 ,mid ,ans;while(low <= up){mid = (low + up) >> 1;if(jude(mid ,n)) ans = mid ,up = mid - 1;else low = mid + 1;}printf("Case #%d:\n" ,cas ++);printf("%d\n" ,ans);}return 0;
}

hdu5248序列变换(二分+贪心)基础题相关推荐

  1. HDU5248:序列变换(二分)

    序列变换 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. hdu5256序列变换(非递减子序列)

    题意(中文直接粘吧) 序列变换 Problem Description     我们有一个数列A1,A2...An,你现在要求修改数量最少的元素,使得这个数列严格递增.其中无论是修改前还是修改后,每个 ...

  3. 面试季,覆盖70%-80%的面经基础题(java及安卓)-------数据结构与算法篇

    数据结构 队列 Queue 什么是队列 队列的种类 Java 集合框架中的队列 Queue Set 什么是 Set 补充:有序集合与无序集合说明 HashSet 和 TreeSet 底层数据结构 Li ...

  4. python代码基础题-python每日经典算法题5(基础题)+1(中难题)

    现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...

  5. hdu 5248(二分+贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5248 解题思路:这道题我原本的思路是动态规划,结果看到数很大,结果放弃了.然后想到二分,思路是对的,只 ...

  6. 1715: 序列变换(LIS变形)

    1715: 序列变换 时间限制: 1 Sec 内存限制: 128 MB [提交][状态][讨论版] 题目描述 我们有一个数列A1,A2-An,你现在要求修改数量最少的元素,使得这个数列严格递增.其中无 ...

  7. python每日经典算法题5(基础题)+1(中难题)

    现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...

  8. PTA寒假基础题训练(含解题思路)(下)

    目录 7-36 字符串的冒泡排序 AC代码: 7-37 龟兔赛跑 AC代码: 7-38 N个数求和 AC代码: 7-39 数列求和-加强版 AC代码: 7-40 抓老鼠啊~亏了还是赚了? AC代码: ...

  9. PTA寒假基础题训练(含解题思路)(中)

    目录 7-19 两个有序单链表求差集 AC代码: 7-20 统计数字字符和空格 AC代码: 7-21 打印沙漏 AC代码: 7-22 Wifi密码 AC代码: 7-23 福到了 AC代码: 7-24 ...

最新文章

  1. python snmp 交换机 配置文件_编译安装SNMP,snmpd.conf配置文件说明
  2. NAT环境无法访问云端的深层次分析
  3. Javascript 学习笔记 - 函数 - 关于IIFE - 关于函数声明和函数表达式 - 个人总结
  4. BGP(3):BGP 的路径优选
  5. c语言电子时钟设计报告,电子时钟设计实验报告.doc
  6. 封堵高危端口,预防勒索病毒
  7. 那些年,我们一起被坑的H5音频
  8. 我的小程序之个人所得税计算器
  9. 微信公众号开发之上传临时素材
  10. Taylor Swift - Enchanted_20131123141153-pdf
  11. LC.1056. Confusing Number, LC.246. Strobogrammatic Number
  12. 像CFO一样思考(1)- 给私域运营算个帐
  13. 硕士毕业论文的致谢怎么写
  14. rewind函数+php,PHP SplFixedArray rewind()用法及代码示例
  15. 男人在神永恒国度里的沉思录
  16. 《目标检测蓝皮书》第5篇 目标检测基础
  17. 【GZ4-1-G24】哈威电磁阀
  18. jsp中设置编码格式
  19. bfd联动 cisco_BFD联动配置
  20. zygomys——golang实现lisp语言

热门文章

  1. Node.js做的代理转发服务器
  2. ​MySQL服务器调优思路图
  3. Spring的依赖注入和管理Bean
  4. 求伯君:向暴雪学习 金山不求一夜暴富
  5. 黑马lavarel教程---8、session
  6. nginx conf 文件
  7. WPF里ItemsControl的分组实现
  8. Serenity安装和创建DEMO--学习第一天
  9. HTTP错误代码对应
  10. SharePoint 2013 REST 服务使用简介