当前位置: 首页 > news >正文

题解:SP6562 PRUBALL - Esferas

<点击前往博客园查看>

盲猜你们都是从 CSP-S 2025 初赛来的……

题目描述

给你 \(n\) 颗蛋和一个 \(m\) 层高的楼,定义蛋的硬度 \(k\) 为:在 \(<k\) 的楼层扔蛋不会碎,在 \(\ge k\) 的楼层扔蛋会碎。求在最坏情况下,最少需要扔多少次才能测出蛋的硬度。

数据范围:\(n \le 100,m \le 1000\)

题目解析

首先考虑只有 \(n=1\) 颗蛋的情况,这时只能从低到高一层一层试。因为只有一颗蛋,如果不一层一层试,蛋就可能会在一个 \(>k+1\) 的层爆掉了,导致没法准确测出蛋的硬度:

将情况拓展到任意颗蛋的情况:如果直接想“第 \(i\) 颗蛋选某一层楼扔下去,就要纠结“选哪一层扔下去一个蛋”,很难想?怎么办?发现最终题目求的是“最少次数”,扔一次蛋就能确定蛋在某一层有没有碎,所以我们考虑设 \(dp_{i,j}\) 表示给你 \(i\) 颗蛋和 \(j\) 次测试机会,最多能确定多少层的蛋状态(碎或不碎),这时就不用考虑在哪一层扔蛋的问题了。

怎么转移?假设我们在第 \(x\) 层扔了一个蛋,那么就有两种情况:蛋碎了和蛋没碎。

  • 碎了:说明蛋的硬度 \(k \le x\),需要进一步测试,此时我们还剩 \(i-1\) 个蛋和 \(j-1\) 次机会,能够测出 \(dp_{i-1,j-1}\) 层楼的状态。
  • 没碎:说明蛋的硬度 \(k>x\),需要进一步测试,此时我们还剩 \(i\) 颗蛋和 \(j-1\) 次机会,能够测出 \(dp_{i,j-1}\) 层楼的状态。
  • 不管第 \(x\) 层碎没碎,我们已经测出了当前层的蛋状态。

所以得到状态转移方程:

\[dp_{i,j}=dp_{i-1,j-1}+dp_{i,j-1}+1 \]

初始状态是 \(\forall 1 \le j \le m,dp_{1,j}=j\),即只有一颗蛋的情况(只能一层一层测)。

参考程序:

AC 记录:https://www.spoj.com/status/ns=35026269#

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=211;
const int M=1218;
int caseid,n,m,ans=-1;
inline bool assert_ans(int h)
{if(h<0){printf("You have no egg!\n");return false;}else if(h>m){cerr<<h<<endl;printf("Wrong Answer!\n");return false;}else{printf("%d %d\n",caseid,h);return true;}
}
inline void guess1()
{vector< vector<int> > dp(n+2,vector<int>(m+2,0));ans=1218;for(int i=1;i<=n;i++)  //使用i个egg{for(int j=1;j<=m;j++)  //扔j次egg{if(i==1) dp[i][j]=j;  //只有1个egg只能一次一次试else dp[i][j]=dp[i-1][j-1]+1+dp[i][j-1];if(dp[i][j]>=m)    //能够确定m层楼,更新答案ans=min(ans,j);}}
}
int main()
{// freopen("neuvillette.in","r",stdin);// freopen("neuvillette.out","w",stdout);int T;scanf("%d",&T);while(T--) {scanf("%d%d%d",&caseid,&n,&m);if(n<=0) assert_ans(-12180211);else if(n==1) assert_ans(m);else{guess1();assert_ans(ans);}}cout.flush();return 0;
}
/*
dp[i][j]表示使用i个egg和扔j次egg最多能确定的楼层数
决策时需要考虑这一次扔egg碎没碎
*/

你说得对,但是《CSP-S 2025 初赛》是由 CCF 自主研发的开放世界冒险游戏。游戏发生在一个被称作「满线段树」的幻想世界,在这里,被模式串选中的人将被授予「next 数组」,导引 KMP 之力。你将扮演一位名为「机器规划员」的神秘角色,在自由的排列组合中邂逅性格各异、能力独特的方程的解,和他们一起走特殊最短路,找回失散的存在缺陷的生产线——同时,逐步发掘「You have no egg!」的真相。

http://www.sczhlp.com/news/122172/

相关文章:

  • 网站开发it项目规划书优化教程
  • 网站特效模板下载佛山顺德网站建设公司
  • 网站建设策dw php自己怎么在手机上设计装修
  • 计算机专业论文网站开发苏州建网站的公
  • 什么颜色做网站好看北京海淀网站制作公司
  • wordpress绑定网站青岛网站制作流程
  • 做品牌网站百度生成手机网站
  • 怎么做微信电影网站在线建筑设计
  • 湖南网站建设seo连云港规划建设网站
  • 做高端企业网站建设公司龙岩人才网最新招聘597
  • 个人项目-文本查重
  • 重庆便宜做网站的响应式网站开发原则
  • 国外销售网站怎样建设微官网建设
  • 网站建站卖首饰侵权网站开发 验收标准
  • 建立网站原则做网站前端开发的必备软件
  • 西安微动免费做网站报备小程序怎么制作
  • 烟台外贸网站建设公司互联网网站备案表
  • 网站建设90g 吾爱破解dz3.2整合wordpress
  • 帮人做非法网站吗小游戏中心
  • phpcms二级栏目文章列表调用网站最新文章的方法WordPress关联搜索插件
  • 企业网站建设策划书方案范文中装建设集团有限公司股票
  • CSPS 2025游记
  • CMake 常用语句
  • 做网站的收入来源建筑设计说明
  • 儿童 网站模板济宁百度推广电话
  • 介绍一学一做视频网站吗成都优化网站
  • 电子商城网站模板制作网站难还是编程难
  • 营销型网站建设作用菏泽做网站优化的
  • 让你有做黑客感觉的网站互动企业展厅设计公司
  • 电脑硬件温度、占用率实时监控软件