2532: 婷婷是土豪

题目描述

众所周知婷婷是我们组大土豪,组里找他借钱和还钱的都有一大堆,借钱的太多了,每天晚上他都要抱怨没钱了。
每天早上,找婷婷借钱的都排成一条长队,假设还钱的有m个,借钱的有n个,现在的问题是,这些人有多少种排法,可以避免出现婷婷没有钱可借的尴尬场面。(两个同样需求的人(比如都是还钱或都是借钱)交换位置是同一种排法)

输入

  两个整数,表示m和n.

输出

  一个整数,表示队伍的排法的方案数。

样例输入 Copy

3 2

样例输出 Copy

5

提示

数据规模和约定 
m,n∈[0,18]

题解:渣渣不会数论,只能暴力深搜。看代码。

当然这一题的测试数据有问题,没有0 0 测试数据,应该输出 0 的

这个代码输出1

#include "bits/stdc++.h"using namespace std;
int m, n;
int ans = 0;void dfs(int num_n, int num_m) {if (num_n == n && num_m == m) {ans++;return;}if (num_m > num_n)//借钱人数不能大于还钱人数return;//还钱if (num_n < n)dfs(num_n + 1, num_m);//借钱if (num_m < m)dfs(num_n, num_m + 1);
}int main() {while (scanf("%d%d", &n, &m) != EOF) {if (m > n) {//这种情况显然无法满足条件printf("0\n");continue;} else {ans = 0;dfs(0, 0);printf("%d\n", ans);}}return 0;
}

正确代码

#include "bits/stdc++.h"using namespace std;
const int max_num = 510;
int m, n;
int ans = 0;void dfs(int num_n, int num_m) {if (num_n == n && num_m == m) {ans++;return;}if (num_m > num_n)return;//还钱if (num_n < n)dfs(num_n + 1, num_m);//借钱if (num_m < m)dfs(num_n, num_m + 1);
}int main() {while (scanf("%d%d", &n, &m) != EOF) {if (m == 0 && n != 0) {printf("1\n");continue;} else if (m == 0 || n == 0 || m > n) {printf("0\n");continue;} else {ans = 0;dfs(0, 0);printf("%d\n", ans);}}return 0;
}

最后一种方法,耗时0ms,离线打表。

#include "bits/stdc++.h"using namespace std;
int ans[19][19] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 5,5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 9, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 1, 5, 14, 28, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 20, 48, 90, 132, 132, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 27, 75, 165, 297, 429, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,8, 35, 110, 275, 572, 1001, 1430, 1430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 44, 154, 429, 1001, 2002,3432, 4862, 4862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 54, 208, 637, 1638, 3640, 7072, 11934, 16796,16796, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, 65, 273, 910, 2548, 6188, 13260, 25194, 41990, 58786, 58786, 0,0, 0, 0, 0, 0, 0, 1, 12, 77, 350, 1260, 3808, 9996, 23256, 48450, 90440, 149226, 208012, 208012, 0,0, 0, 0, 0, 0, 1, 13, 90, 440, 1700, 5508, 15504, 38760, 87210, 177650, 326876, 534888, 742900,742900, 0, 0, 0, 0, 0, 1, 14, 104, 544, 2244, 7752, 23256, 62016, 149226, 326876, 653752, 1188640,1931540, 2674440, 2674440, 0, 0, 0, 0, 1, 15,119, 663, 2907, 10659, 33915, 95931, 245157, 572033, 1225785, 2414425, 4345965, 7020405, 9694845,9694845, 0, 0, 0, 1, 16, 135, 798, 3705, 14364, 48279, 144210, 389367, 961400, 2187185, 4601610,8947575, 15967980, 25662825, 35357670, 35357670, 0, 0, 1, 17, 152, 950, 4655, 19019, 67298, 211508,600875, 1562275, 3749460, 8351070, 17298645, 33266625, 58929450, 94287120, 129644790, 129644790, 0,1, 18, 170, 1120, 5775, 24794, 92092, 303600, 904475, 2466750, 6216210, 14567280, 31865925, 65132550,124062000, 218349120, 347993910, 477638700, 477638700};int main() {int n, m;while (scanf("%d%d", &n, &m) != EOF)printf("%d\n", ans[n][m]);return 0;
}

zzuli oj 2532: 婷婷是土豪 DFS深搜相关推荐

  1. 2020 年百度之星·程序设计大赛 - 初赛一 GPA DFS深搜

    problem GPA Accepts: 1554 Submissions: 3947 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...

  2. [USACO13FEB]Perimeter【DFS / 深搜】

    Pro Luogu3072 Sol 这题的话,我就把我的想做当做反例给说一下. 错误想法:很容易的发现,一个不规则的图形,我们可以通过转换为规则的矩形来求周长,可以平移一些边来求得,但是存在反例. 如 ...

  3. [hihocoder] #1716 : 继承顺位(dfs深搜)

    时间限制: 10000ms 单点时限: 1000ms 内存限制: 256MB 描述 H国的国王有很多王子,这些王子各自也都有很多王孙,王孙又各自有很多后代-- 总之,H国王族的族谱形成了一棵以国王为根 ...

  4. 部分和(dfs深搜回溯法)

    问题描述 给定整数序列a1,a2,.,an,判断是否可以从中选出若干数,使它们的和恰好为k, 1<=n<=20 -10^8<=ai<=10^8 -10^8<=k<= ...

  5. dfs深搜--八皇后问题

    题目描述 一个如下的 6×66 \times 66×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用 ...

  6. 数独游戏(dfs深搜)

    问题描述 如下所示,玩家需要根据9*9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个色九宫内的数字均含1-9,不重复 数独的答案都是唯一的,所以,多个解也称为无解 本图的数字 ...

  7. 【DFS深搜】四色问题

    题目 问题描述: 设有图4-11所示地图,每个区域代表一个省,区域中的数字代表省的编号,今将每个省涂上红(R),兰(B),黄(Y),白(W)四种颜色之一,使相邻的省份不同颜色,且第一种颜色必须填1. ...

  8. DFS深搜与BFS广搜专题

    一般搜索算法的流程框架 DFS和BFS与一般搜索流程的关系 如果一般搜索算法流程4使用的是stack栈结构(先进后出,后进先出)那么就会越搜越深.即,DFS,DFS只保存当前一条路径,其目的是枚举出所 ...

  9. DFS(深搜)算法解析

    图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系.对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示. 图可以分为有向图和无向图,一般用G=(V,E)来表示图. ...

最新文章

  1. php url 筛选,PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
  2. 海峡两岸消防专家论坛台湾举行
  3. object.defineProperty
  4. 静态库和动态库详解(部分参考别人)
  5. bzoj4152: [AMPPZ2014]The Captain
  6. opencv图像分割2-GMM
  7. 不使用for完成一段有空格间隔的字符串,分辨长度大于等于4的单词(求各位高人修改,我表示我是菜鸟,这个算法实在太长了)...
  8. MYSQL数据库字符编码设置
  9. 中国诞生全球最强量子模拟器 量子计算迈出大步
  10. Oracle数据库SQL技术——习题1
  11. java.lang.IllegalArgumentException: Merged region H2 must contain 2 or more cells
  12. JsonMappingException: Problem deserializing 'setterless' property '': get method returned null
  13. redis命令之string类型setex命令用法详情
  14. SAAS(软件即服务) 离我们还有多远?
  15. 矩阵连乘——动态规划算法
  16. [译] TypeScript 3.0: unknown 类型
  17. csig 市场部 外包_市场部主要工作职能是什么,5大职能让你了解市场部的全貌...
  18. Hololens黑科技101
  19. 计算机网络宽带接入,【计算机网络】宽带接入技术
  20. 如何固定背景不随滚动条滚动?

热门文章

  1. linux wifi设置和相关介绍
  2. 天猫tf卡速度测试软件,迟到的晒单:天猫5块9包邮的32GBTF卡拆箱评测
  3. COS461-普林斯顿大学计算机网络课程-assignment1实现
  4. zabbix 表结构: triggers中expression 对应的信息
  5. 攻防世界--看雪看雪看雪
  6. ker矩阵是什么意思_矩阵求逆的几何意义是什么?
  7. 使用Date日期对象来完成,在页面上根据不同时间显示不同的问候语,如:早上好,中午好,下午好,晚上好等信息...
  8. Java程序完形填空题_大学英语六级完形填空试题考前冲刺附答案
  9. [经验教程]手机上微信新消息不提示也不显示微信消息通知怎么办?
  10. 国科大移动互联网技术考试