2014省赛---李白打酒(填空)



public class TestOne {
	
	private static int n=0;//合理的次序总数
	
	/*题目:有酒2斗,遇店加1倍,遇花喝一斗
	 *    共遇店5次,遇花10次,最后一次遇到的是花,正好喝完
	 *思路:深度搜索
	 * */
	public static void main(String[] args) {
		dfs(5,9,2); //排除最后一次遇花,共遇店5次,遇花9次,初始有2斗酒
		System.out.println("共有"+n+"个合理的次序");
	}

	/*dian:当前未遇店的次数
	 *hua:当前未遇花的次数(排除最后一次遇花)
	 *jiu:当前的剩余的酒(最后还剩1斗)
	 * */
	private static void dfs(int dian, int hua, int jiu) {
		if(dian==0 && hua==0 && jiu==1) {//以遇完所有的店和花,并且还有1斗酒
			n++;
			return;
		}
		if(dian>0) {//遇店
			dfs(dian-1,hua,jiu*2);
		}
		if(hua>0) {//遇花
			dfs(dian,hua-1,jiu-1);
		}
		
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值