HDU - 5248
Time Limit: 2000MS | Memory Limit: 32768KB | 64bit IO Format: %I64d & %I64u |
Description
给定序列
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2b203c1c015063a750958b22412a78ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b8ebf0ce477d77ed05092e2540d4ed3c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d9efe1ce21b2c8d4b2797ef8bce8879a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e3f420d38eb1b6e230fcbf29a6d432c3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/43f98a79cd719cbbc21b0987c23c4b74.png)
, 要求改变序列A中的某些元素,形成一个严格单调的序列B(严格单调的定义为:
![](https://i-blog.csdnimg.cn/blog_migrate/f55dd9f43dc190d2889d37674d0956c4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b6a0880b16005c45f1a99e77c70ee111.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3566ebe8ad15f53386887ef4dfb72d85.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f55dd9f43dc190d2889d37674d0956c4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b6a0880b16005c45f1a99e77c70ee111.png)
![](https://i-blog.csdnimg.cn/blog_migrate/60c8a3eaac2a291077a199c19e1ad82a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d9efe1ce21b2c8d4b2797ef8bce8879a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8ed78b18ac14a4ecb56630a40fa44c18.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3566ebe8ad15f53386887ef4dfb72d85.png)
)。
我们定义从序列A到序列B变换的代价为![](https://i-blog.csdnimg.cn/blog_migrate/0df7c7916c37764e51472dfc343a3bf8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/236949c717caa66a183b96984e47f2f8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/92438cda8fd536e58435a2ed4320ae9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d36ac317fe4904e12e17515bd2a65d1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7df305c950c9fa1d7448a36af4049dc3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f55dd9f43dc190d2889d37674d0956c4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9f61591de1c8a8c5f8c7d228814838c5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2b203c1c015063a750958b22412a78ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f9c38887f58a15d10c8b7e0e22ef29a9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0815e7e68da82e60bdb79395822f6d97.png)
![](https://i-blog.csdnimg.cn/blog_migrate/82e20a3491b6554bca16b2e497c691bd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7df305c950c9fa1d7448a36af4049dc3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/077b0d4543fe065f4c18661244dc217e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b6a0880b16005c45f1a99e77c70ee111.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9442972827d7b9ff61ba1d49a23a2744.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f55dd9f43dc190d2889d37674d0956c4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b6a0880b16005c45f1a99e77c70ee111.png)
![](https://i-blog.csdnimg.cn/blog_migrate/077b0d4543fe065f4c18661244dc217e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9f61591de1c8a8c5f8c7d228814838c5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7df305c950c9fa1d7448a36af4049dc3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8ed78b18ac14a4ecb56630a40fa44c18.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6392eb09bd980819d2aae2f522e4af00.png)
。
请求出满足条件的最小代价。
注意,每个元素在变换前后都是整数。
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2b203c1c015063a750958b22412a78ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b8ebf0ce477d77ed05092e2540d4ed3c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d9efe1ce21b2c8d4b2797ef8bce8879a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e3f420d38eb1b6e230fcbf29a6d432c3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/43f98a79cd719cbbc21b0987c23c4b74.png)
![](https://i-blog.csdnimg.cn/blog_migrate/848fe9054fa67fa1acd5b0571ce41b23.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f55dd9f43dc190d2889d37674d0956c4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b6a0880b16005c45f1a99e77c70ee111.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3566ebe8ad15f53386887ef4dfb72d85.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f55dd9f43dc190d2889d37674d0956c4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b6a0880b16005c45f1a99e77c70ee111.png)
![](https://i-blog.csdnimg.cn/blog_migrate/60c8a3eaac2a291077a199c19e1ad82a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d9efe1ce21b2c8d4b2797ef8bce8879a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8ed78b18ac14a4ecb56630a40fa44c18.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3566ebe8ad15f53386887ef4dfb72d85.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6392eb09bd980819d2aae2f522e4af00.png)
我们定义从序列A到序列B变换的代价为
![](https://i-blog.csdnimg.cn/blog_migrate/0df7c7916c37764e51472dfc343a3bf8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/236949c717caa66a183b96984e47f2f8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/92438cda8fd536e58435a2ed4320ae9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d36ac317fe4904e12e17515bd2a65d1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7df305c950c9fa1d7448a36af4049dc3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f55dd9f43dc190d2889d37674d0956c4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9f61591de1c8a8c5f8c7d228814838c5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2b203c1c015063a750958b22412a78ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f9c38887f58a15d10c8b7e0e22ef29a9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0815e7e68da82e60bdb79395822f6d97.png)
![](https://i-blog.csdnimg.cn/blog_migrate/82e20a3491b6554bca16b2e497c691bd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7df305c950c9fa1d7448a36af4049dc3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/077b0d4543fe065f4c18661244dc217e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b6a0880b16005c45f1a99e77c70ee111.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9442972827d7b9ff61ba1d49a23a2744.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f55dd9f43dc190d2889d37674d0956c4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b6a0880b16005c45f1a99e77c70ee111.png)
![](https://i-blog.csdnimg.cn/blog_migrate/077b0d4543fe065f4c18661244dc217e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9f61591de1c8a8c5f8c7d228814838c5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7df305c950c9fa1d7448a36af4049dc3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8ed78b18ac14a4ecb56630a40fa44c18.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6392eb09bd980819d2aae2f522e4af00.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9f61591de1c8a8c5f8c7d228814838c5.png)
请求出满足条件的最小代价。
注意,每个元素在变换前后都是整数。
Input
第一行为测试的组数
![](https://i-blog.csdnimg.cn/blog_migrate/1f80243d0ee60179b3bfaa08e2d41700.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7df305c950c9fa1d7448a36af4049dc3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1f80243d0ee60179b3bfaa08e2d41700.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1b08ce66336b4f2b3a7b911c59c311d2.png)
.
对于每一组:
第一行为序列A的长度![](https://i-blog.csdnimg.cn/blog_migrate/6392eb09bd980819d2aae2f522e4af00.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7df305c950c9fa1d7448a36af4049dc3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6392eb09bd980819d2aae2f522e4af00.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1b08ce66336b4f2b3a7b911c59c311d2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b2776d768e6c22bb2cb38a592d3a2b78.png)
,第二行包含N个数,
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d9efe1ce21b2c8d4b2797ef8bce8879a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e3f420d38eb1b6e230fcbf29a6d432c3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
.
序列A中的每个元素的值是正整数且不超过![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1b08ce66336b4f2b3a7b911c59c311d2.png)
。
![](https://i-blog.csdnimg.cn/blog_migrate/1f80243d0ee60179b3bfaa08e2d41700.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7df305c950c9fa1d7448a36af4049dc3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1f80243d0ee60179b3bfaa08e2d41700.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1b08ce66336b4f2b3a7b911c59c311d2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9f61591de1c8a8c5f8c7d228814838c5.png)
对于每一组:
第一行为序列A的长度
![](https://i-blog.csdnimg.cn/blog_migrate/6392eb09bd980819d2aae2f522e4af00.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7df305c950c9fa1d7448a36af4049dc3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6392eb09bd980819d2aae2f522e4af00.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d11c95e88ab4c8b84819401a4bd9aa72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1b08ce66336b4f2b3a7b911c59c311d2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b2776d768e6c22bb2cb38a592d3a2b78.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9f61591de1c8a8c5f8c7d228814838c5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d9efe1ce21b2c8d4b2797ef8bce8879a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e3f420d38eb1b6e230fcbf29a6d432c3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b7afcc7f4cf457ed54232774c358e8ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0078e2c51675107576ccab364cd305ec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b38e3c57678509a1634f8bce1d5cc5e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/43f98a79cd719cbbc21b0987c23c4b74.png)
序列A中的每个元素的值是正整数且不超过
![](https://i-blog.csdnimg.cn/blog_migrate/a22e580c04f29f0f25e4262eec591fd5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1b08ce66336b4f2b3a7b911c59c311d2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/650fe694514e5180a7e3ec913d76adf0.png)
Output
对于每一个测试样例,输出两行:
第一行输出:"Case #i:"。i代表第 i 组测试数据。
第二行输出一个正整数,代表满足条件的最小代价。
第一行输出:"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[N];
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;
}