蓝桥杯2018年第九题-耐摔指数

news/2024/6/17 12:24:50 标签: 蓝桥杯, c++

题目:

x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。

各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。

x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。

如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。

特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。

如果到了塔的最高层第n层扔没摔坏,则耐摔指数=n

为了减少测试次数,从每个厂家抽样3部手机参加测试。

如果已知了测试塔的高度,并且采用最佳策略,在最坏的运气下最多需要测试多少次才能确定手机的耐摔指数呢?

输入:

一个整数n(3<n<10000),表示测试塔的高度。

输出:

输出一个整数,表示最多测试多少次。

思路:

动态规划

2个限制条件,i:手机数量,j:楼高,可以用dp[i][j]表示

一个最佳策略,(从第几层开始扔最好)

一个最差的运气(手机碎还是不碎)

首先列表分析

当只有一个手机时,dp[1][j]=j;

当有两个手机时,在第k层扔,

如果第一次扔掉就碎了,1+dp[1][k-1]

如果第一次扔掉没碎,1+dp[2][j-k]

当有三个手机时,在第k层扔,

如果第一次扔掉就碎了,1+dp[2][k-1]

如果第一次扔掉没碎,1+dp[3][j-k]

总结:

dp[i][j]=min( dp[i][j] , 1 + max( dp[i-1][k-1] , dp[i][j-k] ) )

代码

#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
//2个因素,i手机数量,j层数
int n;
int dp[4][10000];
int main() {
    cin >> n;
    for (int j = 0; j <= n; j++) {
        dp[1][j] = j;
        dp[2][j] = j;
        dp[3][j] = j;
    }
    for (int i = 2; i <= 3; i++) {
        for (int j = 0; j <= n; j++) {
            for (int k = 1; k < j; k++) {
                dp[i][j] = min(dp[i][j], 1 + max(dp[i][j - k], dp[i - 1][k - 1]));
            }
        }
    }
    cout << dp[3][n] << endl;
    return 0;
}


http://www.niftyadmin.cn/n/147434.html

相关文章

Gin环境搭建

Gin环境搭建 1 介绍 Gin 是一个用 Go (Golang) 编写的 Web 框架&#xff0c;它比Beego框架小巧、性能优越。 # 官方网站 https://gin-gonic.com/# 基本使用 https://gin-gonic.com/zh-cn/docs/introduction/# Github https://github.com/gin-gonic/gin2 搭建gin应用 2.1 初…

13-Oracle触发器(定义,管理及测试)

本章内容 1.触发器概述 2.DML触发器 3.INSTEAD-OF触发器 4.系统触发器5.变异表触发器 6.触发器的管理触发器概述 •触发器的概念与作用•触发器的类型 •触发器组成 &#xff08;1&#xff09;触发器的概念与作用 •触发器是一种特殊类型的存储过程&#xff0c;编译后存储在数据…

【蓝桥杯集训20】质数(3 / 3)

目录 试除法判断质数 分解质因数 筛质数模板 1、朴素筛 2、埃氏筛 3、线性筛 3792. 质数问题 - 筛质数 试除法判断质数 import java.util.*;class Main {public static boolean isprime(int x){if(x<2) return false;for(int i2;i<x/i;i)if(x%i0) return false;r…

百度编辑器UE 中config.json和ueditor.config.js 有什么不同?

文章目录1.参考2.具体说明1.参考 https://segmentfault.com/q/1010000043533227 2.具体说明 config.json和ueditor.config.js都是UEditor中用于配置编辑器的文件&#xff0c;但它们的作用和使用方式有所不同。 config.json&#xff1a;是UEditor v1.5.0及以后版本中新增的一…

【C语言】刷题训练营——《牛客语法篇(6)》

前言 ​ 大家好&#xff0c;继续更新专栏 c_牛客&#xff0c;不出意外的话每天更新十道题&#xff0c;难度也是从易到难&#xff0c;自己复习的同时也希望能帮助到大家&#xff0c;题目答案会根据我所学到的知识提供最优解&#xff0c;希望要学习的小伙伴先思考再看答案。 &am…

Golang连接池应用实践

1.背景介绍 服务和服务之间的连接是开发过程中很常见的操作,为了服务解耦,减少相互依赖,增强系统稳定性,灵活性,所以会增加许许多多的服务通信链路,随着服务通信链路的增加,网络通信次数就会成倍的增长,那么随之而来的就是网络资源的消耗加剧,例如:带宽,连接数以及cpu,内存等,…

springboot+vue药物药品进销存管理系统

此系统主要分为四大模块&#xff1a;系统管理模块、进货管理模块、销售管理模块和库存管理模块。对于系统管理模块来说&#xff0c;系统管理模块具有用户登录、密码修改以及退出系统的功能&#xff1b;对于进货管理模块来说&#xff0c;有药品需求的时候&#xff0c;将所需要的…

【python】采集文库VIP数据并保存PDF,再不为钱发愁

前言 是谁&#xff01;&#xff01;在搜几千字的文档资料只能看25%… 是谁&#xff01;&#xff01;在百度文库找七找八的时候所有的东西都要付费才能继续看… 是谁&#xff01;&#xff01;是谁在网页上搜索往年考试卷题答案的时候只能阅读前两页的选择题… 原来是我自己~我…