Guess the number HDU - 5981 (dp推理)

GPT Mini v5.0实战:Vibe Coding与GPT Codex集成,重塑AI编程工作流 AI辅助编程正从概念走向工程实践,其核心在于通过大语言模型理解代码上下文与开发者意图,实现智能代码生成与优化。这一技术基于自然语言处理与代码表征学习,能够将非结构化需求转化为可执行代码,显著提升开发效率与代码质量。在软件工程领域,AI编程的价值体现在自动化重复任务、辅助复杂逻辑设计、加速技术栈迁移以及降低新手入门门槛。典型的应用场景包括快速原型构建、遗留代码重构、单元测试生成以及跨语言代码转换。GPT Mini v5.0集成的Vibe Coding模式与GPT Codex能力,正是这一趋势的实践典范,通过沉 阅读详情

Guess the number HDU - 5981

 AOA just met a problem when he attended an interview, as shown below:
A and B two people play guessing games. A thinks of a number x between a and b randomly in his mind, and he lets B to guess this number. A will say too small if B’s guess is less than x and A will say yes if B’s guess is just x.Once B’sguess is bigger than x,A won't speak any more.After that,A just nods his head if B’s guess is just x,otherwise shakes his head.The problem is that how many kinds of best guess strategies to make the least number of guesses in the worst situation?

Input
Input contains multiple sets of test data and each of them occupies one line,including two integersa, b(1≤a≤b≤5 * 10^6),on behalf of range of the number.Input to the end of the file.
Output
For each set of input, output one line containing two integers. The first one represents the least number of times of guessing in the worst situation. The second one represents the number of best guess method modulo 100000073.
Sample Input

1 5

Sample Output

3 3

Hint

B can guess the number in A's mind up to 3 times in the worst case.
The first method,B can guess in the order of (2,4,5)
The second method,B can guess in the order of (3,4,5)
The third method,B can guess in the order of (3,5)
Each method is up to three times.
题意:

A和B玩一个游戏:A在[L,R]之间随机选取一个数X,之后由B来猜这个数,如果猜的数比X小,
则A就告诉B你猜的数小了,如果猜的数等于X则游戏结束,如果猜的数大于X,则在这之后A只会回答B
是否猜对了,而不会告诉B是否猜小了。问:在最坏的情况下,B猜到X时最少需要猜多少次,并输出方案数

题解:

这道题其实有一道一模一样的题目:有n层楼,2颗鸡蛋,鸡蛋有个强度:可以在第X层楼摔下去且不
会碎,要求用这2颗鸡蛋测试X是哪一层楼。

微软面试题

假设需要k次测试就能测完,那么我们该如何进行测试呢?因为第一颗蛋碎了,第二颗就只能一层一层地往上
试。因此第一次测试时,就应该选择第k层进行测试,如果在第k层碎了,则从第1层开始遍历到第k-1层,一共
需要k次;如果在第k层没有碎,那么还剩k-1次,我们就选择在k+k-1层进行测试,然后一直进行下去。

计算下来,进行k次测试,最高可以测试的层数为:k+(k-1)+…+1=k(k+1)/2

可以用数组f[x]记录有x层时需要测试的次数,状态转移的方法见代码注释

coed:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 5e6+5;
const int mod = 100000073;
/****
f[x]:有x层楼时需要测试的次数
p[x]:从p[x]楼开始测时至少需要x次测试
cnt[x]:有x层楼时的方案数
sum[x]:cnt的前缀和
****/
int f[maxn],p[maxn],cnt[maxn],sum[maxn];
int main(){
    for(int x = 0,index = 1; index < maxn;){
        //如果x * (x + 1) / 2 < index说明楼层为index时,x次不足以测出,但是可以记录下从        index层开始测最少需要测x+1次,因为x次不到index层
        //然后x+1后肯定就大于等于楼层index了,因为如果不大于等于说明公式求出的不是最大楼层,与前面分析相矛盾
        if(x * (x + 1) / 2 < index) p[++x] = index; 
        //只有x * (x + 1) / 2 >= index时x次是可以测出
        f[index++] = x;
    }
    cnt[1] = sum[0] = 1;
    sum[1] = 2;//目前没搞懂为啥这样初始化望大家指点
    /****
    设现在有x层楼,需要进行f[x]次测试,那么它的方案一定是从f[x]-1次转移过来的,
    我们设变量楼层y,有f[y] = f[x] - 1,很明显有p[f[x]-1] <= y < p[f[x]]
    通过上面分析,如果测试次数有k次,那么第一次可以选择第k层
    因此第x层可以由第[x-k,x-1]之间的楼层层转移过来,但是由于策略最优,因此上界为p[f[x]]-1
    所以第x层的方案数就等于[x-f[x],p[f[x]]-1]之间的楼层的方案数之和
    ****/
    for(int i = 2; i < maxn; i++){
        int st = i - f[i];//相当于上面的i-k
        int ed = p[f[i]] - 1;
        cnt[i] = (sum[ed] - sum[st-1] + mod) % mod;
        sum[i] = (sum[i-1] + cnt[i]) % mod;
    }
    int L,R;
    while(~scanf("%d%d",&L,&R)){
        printf("%d %d\n",f[R-L+1],cnt[R-L+1]);
    }
    return 0;
}
Unity UGUI高斯模糊背景效果 简易解决方案 UnityUI背景模糊效果简易解决方案1.功能描述简易界面框架搭建合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 1.功能描述 在我们玩游戏的时候,经常会看到一些游戏会对UI做这样的处理: 可以看到,新开的上层UI界面会以下层UI界面的模糊 阅读详情

相关推荐

分析以太网帧结构_100G以太网接口调试初体验

是的,标题没有多敲一个“0”,明人不说暗话,就是在FPGA上实现100G以太网接口设计。正好参与了实验室某项目中的100G接口的调试,早想写个专栏文章了,由于调试过程中发现了一些硬件问题,导致迟迟没有往前推进,现在问题解决了之后可以简单分享一下100G以太网接口的调试初体验了~(好像DDR4读写测试系列文章还没搞完 )这篇初体验暂时不分多个章节了,基本设计流程与之前发布的“10G以太网接口”系列文...

weixin_39574050的博客 1601

Guess the number (HDU - 5981 )

传送门 题意:给你一个区间[a,b],让你去猜一个数X,每次可以从区间中选择一个数Y,它会告诉你Y和X的大小关系,如果小于X,它会直接告诉你猜的数小了,如果等于,那么游戏结束,如果大于了X,它只会在第一次给你信息,在这之后,它只会告诉你猜的数是否等于X,让你求最坏情况下,它需要的最小猜测步数和最小猜测步数下的方案数; 题解: 1.这个问题很显然与区间位置无关,只与区间长度有关; 2.考虑下...

qq_40584551的博客 347

WorldQuant Brain Alpha 生成器

一个自动化工具,通过参数优化和回测来挖掘高质量的量化交易 Alpha 因子,并自动提交符合标准的因子。

weixin_37582383的博客 1万+

Guess the number HDU - 5981 (DP)

Guess the number  题目链接:HDU - 5981  题意:一未知数x, 要求在[l, r]区间猜出未知数x,如果猜的数小于x,会给出提示:小了; 如果猜的数大于x,直接告诉你不对,并且在以后的猜测中,只要猜的数不是x,就只告诉你不对;问最坏情况下至少需要猜测几次?及猜测的方案数; 这个题和之前做的测试鸡蛋问题一样,只不过多了一步求方案数; 两个鸡蛋,100层楼问题链接 ...

Sirius_han的博客 361

高效敏感词检测API平台对比与选型指南

本文为开发者提供了高效敏感词检测API平台的选型指南。文章对比了专业API平台、头部云厂商、新兴AI服务商及开源方案,从检测能力、集成易用性、成本、稳定性及扩展性五大维度进行分析,并给出实战选型建议,帮助团队根据业务场景快速选择最合适的敏感词检测服务。

weixin_29325955的博客 341

VS2017中调用gdal(C#版)的方法二(含gdal下载地址,配置过程,代码测试,超详细!!)

VS2017中gdal(C#)版的配置与测试 上次记录了直接在VS2017中下载并应用gdal的方法,这次来记录一下网上下载的安装包配置与测试的方法。 一、环境、版本及下载地址 win10,vs2017社区版,gdal2.4.4 还是像之前在Unity中应用gdal一样,最好是下载已经编译好的C#版的gdal,不然自己配置真的很容易出错,我就是这样的,下面提供不同版本的gdal下载地址: 1.GDAL2.4.4(C#版、64位): https://download.youkuaiyun.com/download/che

chengbaola的博客 1365

HDU-5981-Guess the number-规律

答案是打表发现有规律。 然而没有看懂网上DP打表的过程。。。 在vj上看到了别人的代码。真真好。#include <iostream> #include <cstdio> #include <cstdlib> #include <cstdio> using namespace std; const int maxn=4010; const int mod=100000073; int c[max

天与云与山与水 709

MagicDraw-用例图

MagicDraw-用例图

木头征的博客 3129

ACM-ICPC 2016 大连赛区现场赛 K. Guess the number && HDU 5981(思维+DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5981 题意:A在[L, R]之间随机选取一个数X,之后B来猜这个数,如果猜的数比X小,那么A就告诉B猜小了,如果猜的数大于X,那么以后A永远只会回答B是否猜对了,问在最坏的情况下B至少要猜多少次,并求出有多少种方案。 题解:参考自:https://blog.youkuaiyun.com/jaihk662/ar...

weixin_30673611的博客 230

硬件基础(4):(6)高精度ADC设计中模拟地与数字地的划分与连接

在实际 PCB 设计中,**接地与布线**对于获得干净的参考电压和高精度 ADC 测量至关重要。下面详细阐述**如何在硬件层面减少数字噪声耦合到模拟电路、保障参考电压的稳定性**。

FCZlll的博客 2642

BDD测试用例:Playwright的MCP Server实战

Playwright MCP Server建立了大模型和真实的浏览环境之间的桥梁,可以让大模型操作多款浏览器完成测试任务。

Criss@陈磊 440

HDU-5981 Guess the number(DP)

  Guess the number   Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 160000/160000 K (Java/Others) Total Submission(s): 245    Accepted Submission(s): 99   Problem Description AOA just m...

十分残念的博客 1837

Intellij IDEA 使用教程(一)Jdk安装和配置

一.JDK下载 这里下载的是Java SE 8u181 64位版本。可以根据自己电脑配置来选择不同版本。 官网下载JDK 二.安装JDK 双击运行jdk-8u181-windows-x64.exe安装程序 选择安装目录,然后点击下一步 等待安装 安装JRE,就是java的运行环境,可以安装在java目录下 等待安装 安装完成。点击关闭。 三.java环境变量配置 关于环境变量的配置,...

岁月不饶人,我亦未曾饶过岁月 4052

hdu 5981:Guess the number 动态规划

套路题,而且我觉得它题目描述有问题,决策的方案和样例对不上吧。        考虑dp。令f[i]为i个数最优情况的答案,则枚举第一个决策点f[i]=min{j-1,f[i-j]}。显然最优决策点单调,而且最优决策点是一个范围,暴力求出左右最优决策点即可。        时间复杂度:右端最优决策点显然单调;最短最优决策点不单调,但是离i的距离单调递增,所以为O(N)。        defi

lych的博客 2343

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Interview---一道有趣的推理题

题目描述: 一个岛上

L.J.SHOU的专栏 1751

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

2016 大连 K Guess the number HDU 5981 DP 打表找规律

弄清楚n^2 DP之后,打表能发现l与r随着n的增大是有规律的。用sum维护一下f的前缀和,就可以很快求出答案。 #include #include #include using namespace std; const int mod=1e8+73; const int maxn=5e6+1; int a,b,dp[maxn],n,f[maxn],sum[maxn]; int main(

亂丟程式碼的天空 1308

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HDU 5981 Guess the number

HDU 5981 Guess the number原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=5981题目大意是:AA在区间[a,b][a,b]上猜一个数字,BB猜测AA猜测的数字。如果BB猜测小了AA会告诉他,一旦BB猜测的大了。AA不会再告诉BB,直到B猜到这个数字为止 游戏结束。问,在BB每次做决定后。情况最差时。最少猜测多少次。那么猜测次

ZLH_HHHH的博客 707

HDU 5981 && 2016ICPC大连 K: Guess the number(推理)

题意: A在[L, R]之间随机选取一个数X,之后B来猜这个数,如果猜的数比X小,那么A就告诉B猜小了,如果猜的数大于X,那么以后A永远只会回答B是否猜对了,问在最坏的情况下B至少要猜多少次,并求出有多少种方案 在[L, R]之间猜数同等于在[1, R-L+1]之间猜数,那么就当做在[1, R]之间猜数吧 问题反过来想,假设B只有1次猜的机会,那么在保证B可以猜对的情况下R最大能是多少?(废话肯定R只能为1)

加载中... 1562

hdu5918(KMP求匹配的次数)

题意:分别给出长度为n,m的正整数序列a,b,问a中有多少个起点q,满足从q开始,间隔为p,长度为m的子序列能和b匹配 思路:拆成p个串,跑p次kmp。 #include <bits/stdc++.h> using namespace std; const int maxn = 1000005; int n,m,p,fail[maxn]; void get_fail( int* ...

ehdhg13455的博客 331

2016 ICPC大连赛区 hdu5980 Find Small A

Find Small A Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 353    Accepted Submission(s): 179 Problem Description As is known to

overload1997 487

HDU 1562 Guess the number

Description Happy new year to everybody!  Now, I want you to guess a minimum number x betwwn 1000 and 9999 to let  (1) x % a = 0;  (2) (x+1) % b = 0;  (3) (x+2) % c = 0;  and a, b, c are integ

Occult 881

Max Sum Plus Plus (动态规划+m子段和的最大值)

Max Sum Plus Plus Now I think you have got an AC in Ignatius.L's "Max Sum" problem. To be a brave ACMer, we always challenge ourselves ...

codeswarrior的博客 6721

饭卡(动态规划)

饭卡 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。 某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。 Input 多组数据。对于

codeswarrior的博客 1311

Least common multiple (数论+完全背包)

Least common multiple Partychen like to do mathematical problems. One day, when he was doing on a least common multiple(LCM) problem, he suddenly thought of a very interesting question: if given a n...

codeswarrior的博客 1010

计蒜客-划分整数(dp)

划分整数 蒜头君特别喜欢数学。今天,蒜头君突发奇想:如果想要把一个正整数 nnn 分解成不多于 kkk 个正整数相加的形式,那么一共有多少种分解的方式呢?蒜头君觉得这个问题实在是太难了,于是他想让你帮帮忙。输入格式共一行,包含两个整数 n(1≤n≤300)n(1 \leq n \leq 300)n(1≤n≤300) 和 k(1≤k≤300)k(1 \l...

codeswarrior的博客 843

编辑距离 (dp)

编辑距离 编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 例如将kitten一字转成sitting: sitten (k-&gt;s) sittin (e-&gt;i) sitting (-&gt;g) 所以kitten和sittin...

codeswarrior的博客 823
上一篇: Reorder the Array(贪心)
下一篇: Beijing 2008(快速幂模+逆元不存在时的处理)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值