首页 > 其他分享 >UVA12032 题解

UVA12032 题解

时间:2024-02-01 20:11:42浏览次数:24  
标签:题意 int 题解 mid cin -- UVA12032

题意

原题面一堆废话,其实这道题很简单。

\(T\) 组数据,每组数据给定你一个长度为 \(n\) 的序列 \(a_1...a_n\),在定义 \(a_0\) 为 \(0\) 的情况下,假设 \(k\) 为你的力量系数,在 \(\forall i \in n\) 时 \(a_i-a_{i-1} \le k\),且在按顺序 \(1-n\) 进行判断时,如果 \(a_i-a_{i-1} = k\) 那么 \(k=k-1\),\(k\) 会对后面造成影响。求 \(k\) 的最小值。

思路

二分 \(k\) 的值,按照题意模拟即可。

代码

#include<bits/stdc++.h>
#define N 1000005
using namespace std;
int n,m,a[N],idx;
bool check(int x){
	for(int i=1;i<=n;i++){
		if(a[i]-a[i-1]>x) return 0;//不符合条件
		if(a[i]-a[i-1]==x) x--;//k--
	}
	return 1;
}
int main(){
    cin.tie(0)->sync_with_stdio(0);
    int T;
    cin>>T;
    while(T--){
    	cin>>n;
        for(int i=1;i<=n;i++){
        	cin>>a[i];
		}
		int l=0,r=10000000;
		while(r-l>5){
			int mid=l+r>>1;
			if(check(mid)){
				r=mid;
			}
			else{
				l=mid;
			}
		}
		int ans=1e9;
		for(int i=l;i<=r;i++){
			if(check(i)){
				ans=min(ans,i);//二分k的最小值
			}
		}
		cout<<"Case "<<++idx<<": "<<ans<<endl;//输出答案即可,注意格式
    }
}

标签:题意,int,题解,mid,cin,--,UVA12032
From: https://www.cnblogs.com/Telsif/p/18002029

相关文章

  • 一般图最小匹配 题解
    首先进行排序,显然只有排序后相邻两个元素匹配才有可能成为答案。我们设\(b_i=a_i-a_{i-1}\),则问题转化为:在\(b\)数组中选\(m\)个数(显然一个\(b\)),两两不能相邻,求这些数和最小值。就和这道题一模一样了,使用反悔贪心。具体的,我们可以将所有\(b_i\)放进小根堆里,每次取出......
  • PMP-6.8 控制资源--问题解决
    一、控制资源基础内容 0.涉及领域:资源管理计划资源管理计划为如何使用、控制和最终释放实物资源提供指南。1.控制资源阶段需参照文档(1)问题日志问题日志用于识别有关缺乏资源、原材料供应延迟,或低等级原材料等问题。(2)经验教训登记册在项目早期获得的经验教训可......
  • CF1753D 题解
    因为最后要找的是“腾出空位”的最小代价。所以不妨把“障碍的移动”转化为“空位的移动”。令\(f_{x,y}\)为:使得\((x,y)\)为空,至少需要多少代价。下面来找转移方程,显然转移方程与空格子移动有关。所以观察空格子移动的规律。若当前格子\((x,y)\)为L。以\((x,y+1)\)......
  • P7031 [NWRRC2016] Anniversary Cake 题解
    作者还在想,居然没什么人写红题题解???咳咳。言归正传。本题没有想象中的那么复杂,咱分类讨论就行了。·若在属于蛋糕的平面直角坐标系中,两支蜡烛的横、纵轴不同,就会有多种切法。如图:           这样,我们随便找一种情况输出就行,反正有SpecialJudge......
  • A+B problem 题解
    先把一个单项式理解为:符号,系数的绝对值,字母,指数。为了方便操作,一口气读完整个字符串(数组),然后去扫描。因为如果第一项为整数的话没有符号,判一判。读入系数的绝对值像快读。如果有\(\texttt{^}\)这个符号,读一下之后的指数。由于只有三个字母,所以可以复制粘贴,不用写冗余的......
  • CEIT算法训练-双指针部分题解(T1-3)
    AnagramSearch题意简述两个字符串\(s\)和\(t\)相似的定义为:\(s\)可以打乱之后重新排列成为\(t\)。题目给出\(a\)和\(b\),问\(a\)中有多少子串(连续的一段)与\(b\)相似。同时,\(a\)中还含有\(?\)字符,他可以等价于任何字符(可以变成任何字符)解题思路实际上,根据题......
  • 题解 P6491 [COCI2010-2011#6] ABECEDA
    传送门。分析两个字符大小关系不变,并且具有传递性,我们可以联想到拓扑排序来解决。因此,我们就通过字符串的大小关系,推断出一些字符的大小关系,然后拓扑排序即可。#include<bits/stdc++.h>#include<vector>#include<string>#include<queue>//#defineintlonglongusing......
  • [ARC154E] Reverse and Inversion 题解
    题目链接点击打开链接题目解法\(\sumj-i\)是不好维护的,考虑把\(j-i\)拆成之和\(i,j\)相关的项可以得到:\(\sum\limits_{i<j}[p_i>p_j](j-i)=\sum\limits_{i=1}^ni(\sum\limits_{j=1}^{i-1}[p_j>p_i]-\sum\limits_{j=i+1}^n[p_j<p_i])=\sum\limits_{i=1}^ni(i-1-\sum\......
  • [AGC024E] Sequence Growing Hard 题解
    题目链接点击打开链接题目解法考虑如何添加数,使得\(\{a_1,...,a_i\}\)到\(\{a_1,...,x,a_j,...,a_i\}\)是合法的需要手玩一会才能发现合法条件很简单:\(x>a_j\)考虑对这个进行计数一个一个添元素是难维护的,现在假设有最终的序列,每个位置有\((v,dfn)\),分别为值和添加的次......
  • CF813E Army Creation 题解
    题目链接:CF或者洛谷并不是很难的题,关于颜色数量类问题,那么很显然,沿用经典的"HH的项链"思想去思考问题。由于涉及到了\(k\)个数的限制,我们观察到如果一个数在一个区间上有区间贡献:其中\(x_k\)表示为当前\(x\)的第前\(k+1\)个数,换句话来讲,\(x_k\)到当前的\(x\)所......