蓝桥杯每日一题2023.10.26

测试次数 - 蓝桥云课 (lanqiao.cn)

题目描述

题目分析

对于本题我们可以使用动态规划来分析

dpij代表剩余i层,j台手机的情况下对应的测试数量

分类进行讨论一下:

1.当只剩下一台手机的时候,只能从第一层一层一层往上尝试,尝试到第几层摔坏就是几

2.当j = 2,假设剩余k层,总层数为n,dpk2可以分为以下两种情况:

①摔坏 dpk2 = dpk - 11;

②没摔坏 dpk2 = dpn - k2 //n - k相当于把下面的k层全部砍掉

当j = 3同理

由于考虑的是最坏的情况,所以我们需要在手机摔坏和没摔坏这两种情况中取到最大的测试次数,由于我们要考虑最坏的最优情况,所以我们要在每层最大的里面选择最小的

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int N = 2e3 + 10;
int dp[N][N];
int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int l = 1, r = 1000;
	for(int i = 1; i <= 1000; i ++)dp[i][1] = i;//第一部手机 
	for(int j = 2; j <= 3; j ++)//第二和第三部手机 
	{
		for(int i = 1; i <= 1000; i ++)
		{
			dp[i][j] = 1e9 + 10;
			for(int k = 1; k <= i; k ++)//手机在第k层是否摔坏 
			{
				dp[i][j] = min(max(dp[k - 1][j - 1], dp[i - k][j]) + 1, dp[i][j]); 
			}
		}
	}
	cout << dp[1000][3];
	return 0;
}
相关推荐
风筝在晴天搁浅20 分钟前
LeetCode CodeTop 88.合并两个有序数组
算法·leetcode·职场和发展
洛水水43 分钟前
【力扣100题】83.最小栈
算法·leetcode·职场和发展
8Qi87 小时前
回文子串(Palindromic Substrings)—— 题解
算法·leetcode·职场和发展·动态规划
小欣加油12 小时前
leetcode1926 迷宫中离入口最近的出口
数据结构·c++·算法·leetcode·职场和发展
2601_9618454214 小时前
高考真题试卷电子版|2025高考全科试卷分类下载
考研·面试·蓝桥杯·远程工作·程序员创富·高考
AC赳赳老秦21 小时前
OpenClaw 助力技术面试:自动生成面试题、模拟面试、整理面试知识点
开发语言·python·面试·职场和发展·自动化·deepseek·openclaw
8Qi821 小时前
LeetCode 4:寻找两个正序数组的中位数 —— 二分查找法
java·算法·leetcode·职场和发展·二分查找
林间码客21 小时前
智能旅行规划助手 — 实习面试问答手册
面试·职场和发展
8Qi81 天前
LeetCode 32:最长有效括号 —— 栈 + 标记法 题解
java·数据结构·算法·leetcode·职场和发展··括号匹配
浮午1 天前
腾讯AI应用开发一面实录:13道硬核面试题全解析
人工智能·面试·职场和发展