首页 > 代码库 > 李白喝酒
李白喝酒
李白喝酒,起始有2斗酒,遇到酒店酒翻倍,遇到花店喝一斗。
5个酒店10个花店后刚好喝完。问李白有多少种可能?
二进制枚举:
最后刚好喝完,则最后肯定是花店,喝一斗酒。
假定酒店为1,花店为0,我们枚举14位的二进制数,使得它有5个1,9个0,且使得最后剩酒1斗即答案。
#include<bits/stdc++.h>using namespace std;int main(){ int ans=0; for(int i=0;i<(1<<14);i++) { int tot0=0; int tot1=0; int num=2; for(int j=0;j<14;j++) { if(i&(1<<j)) { num*=2; tot1++; } else { num-=1; tot0++; } } if(tot1==5&&tot0==9&&num==1) { ans++; } } cout<<ans<<endl; return 0;}
李白喝酒
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。