搜索—Problem_1008-猜数字
2016-04-08 18:31
465 查看
搜索—Problem_1008-猜数字
题意
A有1数m,B来猜.B每猜一次,A就说”太大”,”太小”或”对了” 。问B猜n次可以猜到的最大数。
解题思路
设猜到的最大的数字为h,,猜到最大的数字h,也就是说,在1到h间的每一个数,你都能在m次内把它猜出来!所以说在最坏的情况下,在1到h间,你最多只要猜log2(h)+1(取整)次,所以易知h=2^m-1.即猜m次,能猜到的最大的数为2^m-1。
感想
考察B猜数的最优方法,也算是二分的拓展应用吧。
AC代码
#include<iostream> #include<cmath> using namespace std; int main() { int T,n; cin>>T; while(T--) { cin>>n; cout<<(int)(pow(2,n)-1)<<endl; } }
相关文章推荐
- dddd
- [原创] 更新Ubuntu自带的python2.X版本 ImportError: No module named pip;ImportError: No module named _sqlite3
- 交易型開放式指數基金ETF
- Android Studio配置SVN
- iOS 图片转换成base64(二)
- Web Service(或者叫Web API)实现比较-SOAP&REST
- php中json数据接口创建及调用
- php三种接口(json、XML、jsonp)的生成与调用
- WordPress目录文件结构详细说明
- 构建之法8,16读后感
- 你真的会写单例模式吗——Java实现
- android_studio导入jar包
- ffmpeg调用x264编码器的过程分析
- HDU Safecracker
- 主从复制的几种方式
- mysql中update与delete 注意事项
- Ubuntu下安装JDK1.6 不用apt-get免得找不到源
- FFmpeg与libx264接口源代码简单分析
- HDU N皇后问题
- 占位符1