首页 > 其他分享 >C. To Become Max

C. To Become Max

时间:2024-07-21 09:40:13浏览次数:7  
标签:minn int Max height maxn Become include id

链接

https://codeforces.com/problemset/problem/1856/C

题目

思路

卡了好久的题目,昨晚突然就做出来了。

整体思路就是dp+二分。我们知道这个序列长度的最大值是对任意i∈[1,n],取a[i]+i-1的最大值;最小值就是max(a[i])(i∈[1,n])。

然后再遍历每个点判断是否有一个点能到达那个高度。利用dfs计算达到当前目标高度的步数,然后递归,并且如果最后一个的高度小于需要的高度,直接返回k+1步,让judge返回false即可。

代码

#define _CRT_SECURE_NO_WARNINGS 
#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
#include<map>
#include<queue>
#include<limits.h>
#include<climits>
#include<fstream>
#include<stack>
#define IOS ios::sync_with_stdio(false), cin.tie(0) ,cout.tie(0)
using namespace std;
#define int long long
const int N = 1e3 + 10;
int a[N];
int n, k;
bool fa = true;

int count(int id, int height)
{
	if (id == n and height > a[id])return k + 1;
	if (height > a[id])
		return height - a[id] + count(id + 1, height - 1);
	else return 0;
	
}

bool jd(int x)
{
	for (int i = 1; i <= n; i++)
	{
		if (count(i, x) <= k and fa)return true;
	}
	return false;
}


signed main()
{
	IOS;
	int t; cin >> t;
	while (t--)
	{
		cin >> n >> k;
		int minn = 0, maxn = 0;
		for (int i = 1; i <= n; i++) { cin >> a[i]; minn = max(a[i], minn); maxn = max(maxn, a[i] + i - 1); };
		int l = minn, r = maxn;
		while (l < r)
		{
			int m = (l + r + 1) / 2;
			if (jd(m))l = m;
			else r = m - 1;
		}
		cout << l << '\n';

	}

	return 0;
}

标签:minn,int,Max,height,maxn,Become,include,id
From: https://www.cnblogs.com/zzzsacmblog/p/18314178

相关文章

  • NMS(non maximum suppression)非极大值抑制
    参考学习:算法精讲-预测阶段后处理-NMS非极大值抑制_哔哩哔哩_bilibili以YOLOv1的模型来讲,预测阶段后处理就是把每个boundingbox中的每个种类的值算出全概率,再对比boundingbox中同种类物品,先设定一个阈值,把boundingbox中同种类全概率低于阈值的算为0,再进行一次降序排序,通过遍历......
  • MaxKB添加本地ollama大模型遇到API域名无效的问题
    MaxKB添加本地ollama大模型遇到API域名无效的问题前期的安装过程下载ollama,直接安装添加环境变量,使得下载模型到指定文件夹docker部署MaxKB打开添加模型API域名无效解决办法添加环境变量给ollama在“系统变量”或“用户变量”中点击“新建…”。输入变量名OLLAMA_......
  • MaxKB添加本地ollama大模型遇到API域名无效的问题
    MaxKB添加本地ollama大模型遇到API域名无效的问题前期的安装过程下载ollama,直接安装添加环境变量,使得下载模型到指定文件夹docker部署MaxKB打开添加模型API域名无效解决办法添加环境变量给ollama在“系统变量”或“用户变量”中点击“新建…”。输入变量名OLLAMA_......
  • MaxKB添加本地ollama大模型遇到API域名无效的问题
    MaxKB添加本地ollama大模型遇到API域名无效的问题前期的安装过程下载ollama,直接安装添加环境变量,使得下载模型到指定文件夹docker部署MaxKB打开添加模型API域名无效解决办法添加环境变量给ollama在“系统变量”或“用户变量”中点击“新建…”。输入变量名OLLAMA_......
  • MaxKB添加本地ollama大模型遇到API域名无效的问题
    MaxKB添加本地ollama大模型遇到API域名无效的问题前期的安装过程下载ollama,直接安装添加环境变量,使得下载模型到指定文件夹docker部署MaxKB打开添加模型API域名无效解决办法添加环境变量给ollama在“系统变量”或“用户变量”中点击“新建…”。输入变量名OLLAMA_......
  • MaxKB添加本地ollama大模型遇到API域名无效的问题
    MaxKB添加本地ollama大模型遇到API域名无效的问题前期的安装过程下载ollama,直接安装添加环境变量,使得下载模型到指定文件夹docker部署MaxKB打开添加模型API域名无效解决办法添加环境变量给ollama在“系统变量”或“用户变量”中点击“新建…”。输入变量名OLLAMA_......
  • D. Maximum Sum of Products
    链接https://codeforces.com/problemset/problem/1519/D题目分析总的来说不算难的一道题,主要是敢写就行,控制在O(n^2),枚举中心点,分成两类:一类是奇数,一类是偶数对称就行。代码#define_CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>#include<algorithm>#in......
  • EdrawMax 13.0安装包附安装教程
    下载链接:https://docs.qq.com/doc/DSVJlY01teWpjd05K1、首先,解压亿图图示EdrawMax13.0.0压缩包,解压密码是rcy22。2、打开亿图图示EdrawMax13.0.0安装包,运行EdrawMax13.0.0程序。3、默认,点击确定。4、勾选我已同意,点击下一步。5、更改亿图图示EdrawMax1......
  • C. To Become Max
    原题链接题解观察到求最大值,所以尝试二分观察样例规则发现,如果\(a_i\)达到\(x\),则\(a_{i+1}\)至少达到\(x-1\)code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constllN=114514;lln,k;lla[N]={0};llb[N]={0};boolcheck(llh){......
  • zemax学习系列第六天——系统孔径设置-入瞳、F数、NA
    ①入瞳直径(1)EntrancePupilDiameter(入瞳直径)当物体位于无限远时,可以用它来定义相对孔径,此时的ApertureValue中输入具体的入瞳直径数值,一般选择LensUnits为Millimeters(毫米)。一般设置为平行光V=12.5                       ......