zstuoj (浙理工) 孙壕请一盘青岛大虾呗
2015-12-20 19:43
239 查看
Problem A: 孙壕请一盘青岛大虾呗
Time Limit: 5 Sec Memory Limit:128 MB
Submit: 508 Solved:
206
Description
话说那一年zstu与gdut进行了一场PK赛,很侥幸的zstu赢了。按照约定,gdut的孙壕得请客。大家呼声很高,均高呼:“孙壕请一盘青岛大呗!”作为gd的一壕,孙壕爽快的答应了。不过zsj说光吃大虾怎么能过瘾,酒是必须上的。说罢,zsj拿出了2瓶赊店老酒。然而2瓶酒显然不能满足大的要求。xs提议青岛大街走一走,逢店加一倍(酒),逢摊吃大虾并喝一瓶(酒)。这一路走过去,遇到店n次,大排档m次,已知最后1次是大排档,大伙正好把酒喝完。请你计算孙壕请客遇到酒店和大排档的次序,合理的次序一共有多少种?
Input
多组测试数据,每组输入2个整数n和m(均不大于10)Output
对于每组测试数据输出一行,值为符合条件的次序数.Sample Input
1 3
Sample Output
1
HINT
1 3的情况是:先大排档 酒由2瓶变1瓶
然后酒店 酒由1瓶变2瓶
然后2次大排档,各喝1瓶,正好喝完
我的天,递归和搜索当时不会写
#include<stdio.h> int sum=0; void dfs(int a,int b,int c) { if(a==0&&b==0&&c==1) { sum++; return ; } else if(c==0) return ; else if(a==0&&b==0&&c>1) return ; else if(a==0&&b>0) dfs(a,b-1,c-1); else if(a>0&&b==0) dfs(a-1,b,c*2); else if(a>0&&b>0) { dfs(a-1,b,c*2); dfs(a,b-1,c-1); } } int main() { int m,n; while(~scanf("%d%d",&n,&m)) { int c; dfs(n,m-1,2); printf("%d\n",sum); sum=0; } return 0; }
相关文章推荐
- Autolayout(VFL)
- anr,多线程,handler
- Google java编程风格指南
- android网络编程之HttpUrlConnection的讲解--实现文件断点下载
- HTML5 File API初探支持文件拖放上传功能
- Linux——磁盘基本概念
- 摩尔斯电码(morse)转换英文字符串c语言代码
- mysql获取某个表的所有字段名
- 数据库的操作(使用FMDB)
- listview 嵌套listview的显示问题
- Dom4j解析xml文件-递归遍历所有节点和属性
- JavaScript设计模式--责任链模式
- 数据结构期末总结
- 大楼扔鸡蛋问题 dp poj 3783
- Android 核心理解 :Binder 和 Server
- Android必学之数据适配器BaseAdapter
- cache manifest 格式
- 相机画幅小节
- Linux——Vi、Vim编辑器命令基础
- c# 内存的具体表现- 通用类型系统 深拷贝 浅拷贝 函数传参