李白喝酒——蓝桥杯
2018-06-18 04:07:38来源:未知 阅读 ()
李白喝酒问题
“李白街上走,提壶去买酒,遇店加一倍,见花喝一斗”,途中,遇见5次店,见了10此花,壶中原有2斗酒,最后刚好喝完酒,要求最后遇见的是花,求可能的情况有多少种?
分析:题目要求最后是遇见花也就是说最后是喝酒(最好刚好把酒完),出去这种确定的情况,最后剩下的情况是:还有一斗酒,前面遇到了5次店和九次花(打了5次酒,喝了九次酒)。
然后每次情况只有两种分别是遇见花喝酒和遇到店打酒。
//dfs(num-1,mum,s*2)+dfs(num,mum-1,s-1);
遇到店的时候打酒(s*2),然后酒的斗数会翻倍;遇到花时喝酒,然后酒的斗数减一(s-1);
然后设置递归的出口:
当酒喝完还遇见花时,则return 0;以为酒不能是负的;
当5个店已经都遇见过时,则return 0;
当9个花已经都遇见过时,则return 0;
当花刚好遇见完,店刚好遇见完,酒还有一斗时:return 1;
当中间过程,酒喝完了,但是遇见店了,又因为此时s=0,遇到店的时候打酒(s*2),所以要把s设置成0.5;
/***********只是个人理解,欢迎交流*************/
1 #include<stdio.h> 2 int dfs(int num,int mum,int s){ 3 if(s<0 || num<0 || mum<0) 4 return 0; 5 if(num<0 || mum<0) 6 return 0; 7 if(num==0 && mum==0&& s==1) 8 return 1; 9 if(s==0 && num>0 && mum>=0) 10 s=0.5; 11 return dfs(num-1,mum,s*2)+dfs(num,mum-1,s-1); 12 } 13 int main() 14 { 15 printf("%d",dfs(5,9,2)); 16 return 0; 17 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:poll机制分析
- [题记-并查集] 合根植物 - 蓝桥杯 2020-04-07
- 蓝桥杯练习(入门一) 2020-03-23
- 【蓝桥杯】十六进制转八进制 2020-02-17
- 全球变暖(18年4月蓝桥杯) 2019-12-28
- 算法训练 区间k大数查询 2019-02-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash