题目:

  • 标题:测试次数

    x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。
    各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。

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

    如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。
    特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。
    如果到了塔的最高层第n层扔没摔坏,则耐摔指数=n

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

    某次测试的塔高为1000层,如果我们总是采用最佳策略,在最坏的运气下最多需要测试多少次才能确定手机的耐摔指数呢?

    请填写这个最多测试次数。

    注意:需要填写的是一个整数,不要填写任何多余内容。

解题思路:

  1. n部手机测试i层,要测试m层的时候必须要从第1~m层去测试,用j表示1到m的层数。
  2. 每一层对应2个结果,好:剩下n部手机、剩m-j层没测;坏:剩下n-1部手机、剩j-1层没测 。
  3. 因为运气最差,所有选取每一层中测试次数最多的结果作为该层的测试次数。
  4. 策略最佳,从1~m层中选取测试次数最少的作为结果 。

代码:

#include <iostream>
#include <cmath>
#include <climits>
using namespace std;const int N = 1000;
int f1[N+1],f2[N+1],f3[N+1]; //分别表示1、2、3部手机在运气最差,最佳策略的情况以及n层测试中的耐摔指数
int main(){//1部手机运气最差:就是1-n层分别要测1-n次for(int i = 1;i <= N;i++){f1[i] = i;} //2部手机,对应好和坏,以及最佳策略for(int i = 1;i <= N;i++){int ans = INT_MAX;//2部手机i层,1~i每一层都要测试 for(int j = 1;j <= i;j++){//好和坏结果下找出测试次数最多 int _max = 1+max(f2[i-j],f1[j-1]);//找1~j层中测试次数最少;最佳策略ans = min(ans,_max);       }f2[i] = ans;} //3部手机,对应好和坏,以及最佳策略for(int i = 1;i <= N;i++){int ans = INT_MAX;//3部手机i层,1~i每一层都要测试 for(int j = 1;j <= i;j++){//好和坏条件下找出测试次数最多 int _max = 1+max(f3[i-j],f2[j-1]);//找1~j层中测试次数最少;最佳策略ans = min(ans,_max);       }f3[i] = ans;}//输出3部手机1000层的测试次数cout << f3[N] << endl;return 0;
}

本题答案:19

蓝桥杯摔手机测试次数相关推荐

  1. 蓝桥杯练习——摔手机测试次数

    蓝桥杯练习--摔手机测试次数 问题 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机必须经过耐摔测试, 并且评定出一 ...

  2. 【蓝桥杯2018Java】测试次数/耐摔指数

    题目意思的理解 运气最差:直到最后一个手机才能测试出耐摔数 最佳策略:运气最差情况下在所有的测试情况中最少的测试次数 思路 用动态规划去写,我们用二维数组,一个代表楼层数,一个代表手机数,找到二维数组 ...

  3. 【精品计划0】蓝桥杯 摔手机

    原题描述: x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上 ...

  4. 蓝桥杯——摔手机 动态规划

    题目描述 X 星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上 ...

  5. 蓝桥杯 摔手机----耐摔指数

     原题: 标题:测试次数 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来 ...

  6. 谷歌面试题之扔鸡蛋的问题(蓝桥杯摔手机的问题)

    来自一个古老的公众号(摔手机就是根据扔鸡蛋过来的) 吐个槽先 正如昨天所说,这道题据说它最早见于谷歌的某次面试,由于题目表述容易,而解答相对麻烦,于是被很多人采用,广泛见于一些算法.规划的面试里. 要 ...

  7. 算法技能树2-蓝桥杯-python实现测试次数(摔手机)-动态规划(DP)

    文章目录 1.题目描述 2.python解题 1.知识点总结 1.题目描述 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规 ...

  8. BASIC-23_蓝桥杯_芯片测试

    思路: 1.当测试与被测试的芯片全部可以互相测试时,为好芯片; 示例代码: #include <stdio.h> #define N 20 int main(void) { int n = ...

  9. java 蓝桥杯算法提高 出现次数最多的整数

    思路:其实这道题不是太难,但是这个题太坑了,提交了好多次都不是100,后来才知道,一定一定要在输入数组数据之前先判断一下输进去的n的范围,一定一定要注意,否则就是跟我下面的图片一样的效果了,泪奔~ 问 ...

最新文章

  1. 让系统命令man汉化
  2. memcahce 介绍以及安装以及扩展的安装
  3. 栈、堆、方法区之间的关系
  4. 人工智能和机器人将成为数据中心最佳“伴侣”
  5. STM32 F101系列的程序怎么转化为STM F103出现编译错误!
  6. Python爬虫利器一Requests库的用法
  7. python权限不够cmd安装不了_python环境配置+matplotlib
  8. 关于 静态页面布局 中的一些BUG
  9. Leetcode题目:Lowest Common Ancestor of a Binary Search Tree
  10. [转载] [Python] np.ones_like(ndarray)和np.zeros_like(ndarray)
  11. Github 是如何用 Github 撰写 Github 文档的
  12. flume流程之SpoolDir-memory-hdfs
  13. 并行开发 5.同步机制(下)
  14. python excel 教程推荐_python脚本实现数据导出excel格式的简单方法(推荐)
  15. 推荐几本学习MySQL的好书
  16. Mac上Fortran环境搭建
  17. Windows下载安装kafka
  18. 怎样计算计算机的硬盘大小,硬盘容量大小计算的办法
  19. 自己对香港一卡通的总结
  20. 【python】查找array中非零元素的横纵坐标

热门文章

  1. idea项目名称重命名
  2. 环艺考计算机英语吗,应届考取北理环艺分享|愿汗水泪水都不会被辜负!
  3. Linux 操作rar压缩包
  4. 手机rar压缩包密码忘了怎么办,rar压缩包不能复制打印、rar压缩包忘记密码怎么办?
  5. 监控时代,那无处安放的隐私
  6. 腾讯微信短网址(url.cn)在线生成接口API使用详解
  7. 掌上聊app v1.5.5
  8. Eclipse_Java文件注解乱码
  9. P7939 [B1] Alice Wins (easy version)--题解报告
  10. 不是所有的大作业都叫微信抢票大作业