烙饼啊烙饼{转自ITEO

一摞烙饼

博客分类:
  • 编程
1.有一些服务员会把上面的一摞饼子放在自己头顶上(放心,他们都戴着洁白的帽子),然后再处理其他饼子,在这个条件下,我们的算法能有什么改进?
Java代码 复制代码 收藏代码
  1. int[] cakeArray;   
  2. CPrefixSorting sorting;    
  3. for(int i=0;i<cakeArray.length;i++) {   
  4.     找出cakeArray[0:i]中的最大者cakeArray[i_max];   
  5.     找出cakeArray[i+1:cakeArray.length-1]中的最小者cakeArray[i_min];   
  6.     if(cakeArray[i_max]<=cakeArray[i_min]){   
  7.         sorting.run(cakeArray,i);   
  8.         sorting.run(&cakeArray[i+1],cakeArray.length-i);   
  9.     }   
  10. }  
int[] cakeArray;
CPrefixSorting sorting; 
for(int i=0;i<cakeArray.length;i++) {找出cakeArray[0:i]中的最大者cakeArray[i_max];找出cakeArray[i+1:cakeArray.length-1]中的最小者cakeArray[i_min];if(cakeArray[i_max]<=cakeArray[i_min]){sorting.run(cakeArray,i);sorting.run(&cakeArray[i+1],cakeArray.length-i);}
}

2.事实上,饭店的师傅经常把烙饼烤得一面非常焦,另一面则是金黄色。这时,服务员还得考虑让烙饼大小有序,并且金黄色的一面都要向上。这样要怎么翻呢?
A  先按照“烙饼排序实现”对烙饼进行大小排序
B  然后对有金黄色不朝上的烙饼做如下操作,以cakeArray[k]为例
翻转cakeArray[0:k],将cakeArray[k]翻到顶层,翻转cakeArray[k],然后将cakeArray[0:k]翻转,将cake[k]翻回原来位置

3.有一次师傅烙了三个饼,一个两面都焦了,一个两面都是金黄色,一个一面是焦的,一面是金黄色,我把它们摞一起,只能看到最上面一个饼的上面,发现是焦的,问最上面这个饼的另一面是焦的概率是多少?
条件概率:双焦面的烙饼在最上面的概率为1/3,单焦面烙饼在最上面的概率也为1/3,单焦面烙饼在最上面同时焦面朝上的概率为1/3 * 1/2 = 1/6,因此在最上表面为焦面的条件下,其对应的下表面也为焦面的概率为1/3 / (1/6 + 1/3) = 2/3

4.每次翻烙饼的时候,上面的若干个烙饼会被翻转。如果我们希望在排序过程中,翻转烙饼的总个数最少,结果会如何呢?
不以翻转次数作为评价标准,而是以翻转烙饼总个数作为评价标准。
A  修改相应的LowerBound和UpBound函数,UpBound也采用同LowerBound一样的参数列表
B   同时在Search(int step)中增加一个参数int tatalReverseCount,增加一个成员变量int m_nMaxReverseCount,
C   代码m_nMaxSwap = UpBound(m_nCakeCnt);修改为m_nMaxReverseCount = UpBount(m_CakeArray,m_nCakeCnt);m_nMaxSwap = 2*m_nCakeCnt;
D   代码if(step + nEstimate > m_nMaxSwap)修改为if(tatalReverseCount + nEstimate > m_nMaxReverseCount)
E   代码m_nMaxSwap = step;下面增加一条语句m_nMaxReverseCount = tatalReverseCount;

转载于:https://www.cnblogs.com/avenxia/archive/2012/09/13/2683094.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(553):node实现登录和注册第一部分代码

const http require(http); const url require(url) const querystring require(querystring) let user{admin:123456 } http.createServer((req,res)>{let path,get,post//如果是get请求if(req.methodGET){let{pathname,query} url.parse(req.url,true)pathpathname,ge…

前端学习(554):node实现登录和注册第二部分代码

jquery.min.js npm安装jQuery并引入 app.js const http require(http); const url require(url) const querystring require(querystring) const fs require(fs) let user{admin:12345 } http.createServer((req,res)>{let path,get,post//如果是get请求if(req.method…

『AA』AutoAnchor自动猫

2012-09-17 19:40:31&#xff1a;嘿嘿&#xff0c;给自己出了道编程题&#xff0c;难度不大&#xff08;YY都可以&#xff09;&#xff0c; 大家有兴趣可以自己去实现下。 文章目录 引子思路用法bug源代码 & 可执行文件引子 一篇博文如果太长的话&#xff0c;为博文标题添加…

前端学习(557):css与百分比单位

普通元素的百分比是按照元素的宽度决定的 绝对定位的百分比是按照第一个定位元素的容器的宽度计算的

java递归遍历xml所有元素_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...

2019独角兽企业重金招聘Python工程师标准>>>xml中加入了几条&#xff0c;为了方便查询时作为示例。话不多说见代码注释&#xff1a;DTD文件&#xff1a;SwordTypeDefinition.dtdXML文件&#xff1a;SwordLib.xmlSwordLibrary SYSTEM "SwordTypeDefinition.dtd&qu…

list python 转tensor_Pytorch--Tensor, Numpy--Array,Python--List 相互之间的转换。

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循CC 4.0 by-sa版权协议&#xff0c;转载请附上原文出处链接和本声明。本文链接&#xff1a;https://blog.csdn.net/weixin_37589575/article/details/994463941.1 List --> Arrary: np.array(List 变量)a [1, 2, 3, …

嵌入式开发中利用strstr()对部分模块回传数据进行解析的问题(坑)

受到以下博文的启发&#xff1a; https://www.cnblogs.com/yup1983/p/11337837.html 验证&#xff1a; 最近通过ESP8266远程控制小车&#xff0c;在wifi回传的数据解析过程中遇到标题所述的烦恼 如上截图所示&#xff0c;数据回传过程中会接受到‘\0’字节对应的ASCII码为0x0…

前端学习(561):解决margin重叠第二种情况父子

第一种方法 第二种方法 第三种方法 第四种方法 第五种方式

python导入模块不在同一文件夹下_Python小技之自定义不同文件夹下模块导入问题...

一般在写一个项目的时候, 为了将项目模块化, 更加的清晰明了, 会将不同功能的模块放入不同的文件夹项目如下:├── spider│ └── spider.py # 爬虫文件└── utils├── __init__.py└── downloads.py # 下载模块downloads.py内容如下:def download():print("im…

前端学习(563):干掉block重叠margin重叠

第一种方法 第二种方法 第三种方法 第四种方法

Ubuntu11.04 3945ABG无线网卡驱动安装

由于对无线上网的需求&#xff0c;特对Ubuntu11.04的无线驱动进行安装&#xff0c;一波三折。 首先是"系统设置"-->"硬件"-->"附加驱动"&#xff0c;显示“这个系统上没有使用专有驱动”&#xff0c;也就是找不到3945ABG无线网卡的驱动。 …

Java连接SQL数据库失败的分析思路

简单的说下java连接SQL数据库的步骤&#xff1a; 1. 首先要有一个jtds.jar数据库驱动包。 2. 可先在项目下新建一个Folder,取名为lib&#xff0c;把jtds驱动包放到lib文件夹下。 3. 在项目上右键 build path → add External Archive 找到自己项目下刚才新建的lib文件夹&…