码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [蓝桥杯2018初赛]耐摔指数 (动态规划)


    题目描述:

    x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。
    各大厂商也就纷纷推出各种耐摔型手机。
    x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。
    x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。
    塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。
    如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。
    特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。
    如果到了塔的最高层第n层扔没摔坏,则耐摔指数=n
    为了减少测试次数,从每个厂家抽样3部手机参加测试。
    如果已知了测试塔的高度,并且采用最佳策略,在最坏的运气下最多需要测试多少次才能确定手机的耐摔指数呢?

    思路:

    首先要弄清题目要求的是什么。 最佳策略,最坏运气,求测试次数。可以理解为:最坏运气下,最少的测试次数(最佳方案下)是多少。

    dp[i][j]表示:剩i部手机的情况下,楼层数为j时,最少的测试次数(最佳方案下)为多少。

    当前测试的层数为k时,则分为两种情况:

    一、该次测试坏了,手机数量减一,测试下部分的楼层:dp[i - 1][k - 1] + 1

    二、该次测试没坏,测试上部分楼层:dp[i][j-k]+1

    两种情况取最少的测试次数(最优方案)

    则状态转移方程为:

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

    代码:

    1. #include
    2. #include
    3. using namespace std;
    4. int dp[4][10005];
    5. int n;
    6. void solve(){
    7. for(int i=1;i<=3;i++){
    8. for(int j=1;j<=n;j++){
    9. dp[i][j]=j;//最坏运气下,最多的测试次数是:从上到下一直测试,一直没坏,此时测试次数为楼层数
    10. }
    11. }
    12. for(int i=2;i<=3;i++){
    13. for(int j=1;j<=n;j++){
    14. for(int k=1;k
    15. dp[i][j]=min(dp[i][j],max(dp[i-1][k-1]+1,dp[i][j-k]+1));
    16. }
    17. }
    18. }
    19. cout<3][n]<
    20. }
    21. int main()
    22. {
    23. while(cin>>n){
    24. solve();
    25. }
    26. }


     

  • 相关阅读:
    我们在文本摘要方面取得了什么成就?
    【C语言基础】近期所学到的函数以及关键字(函数memset、scanf、关键字staric、 inline、volatile)
    软考 --- 数据库(3)数据操作
    Nacos部署及使用
    AirPods Pro的降噪功能让你体验更好,那么如何打开这个功能
    CMMI是什么意思
    PHP如何持续监听Redis的消息订阅并推送到前端?
    经典网络解(三) 生成模型VAE | 自编码器、变分自编码器|有监督,无监督
    关于需求规范和需求评审的一点看法
    Windows 10 启用 Hyper-V
  • 原文地址:https://blog.csdn.net/qq_63128300/article/details/136307853
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号