这个是理解标记和取消标记,用一个vis数组来标记

全排列代码:

 #include <stdio.h>

 int a[];
int vis[];
int n;
void dfs(int step)//step是当前已经进去排列的个数
{
if (step == n)//如果找到n个之后,打印一次
{
for (int i = ; i < n; i++)
printf("%d ", a[i]);
puts("");
return ;
}
for (int i = ; i <= n; i++)
{
if (vis[i] == )//排列中没有此数字,就将它加入到排列中
{
vis[i] = ;
a[step] = i;
dfs(step + );
vis[i] = ;
}
}
}
int main()
{
while (scanf("%d", &n) == )
{
dfs();
}
return ;
}

组合数代码(NYOJ-32):

 #include <stdio.h>
#include <string.h> int n, r;
int a[];
int vis[];
void dfs(int step)
{
if (step == r + )
{
for (int i = ; i <= r; i++)
printf("%d", a[i]);
puts("");
return ;
}
for (int i = n; i > ; i--)
{
if (vis[i] == && i < a[step - ])//满足逆序
{
vis[i] = ;
a[step] = i;
dfs(step + );
vis[i] = ;
}
}
}
int main()
{
a[] = ;
while (scanf("%d %d", &n, &r) == )
{
memset(vis, , sizeof(vis)); dfs();
} return ;
}

深搜最基础题---全排列And组合数的更多相关文章

  1. HDU 4597 Play Game(记忆化搜索,深搜)

    题目 //传说中的记忆化搜索,好吧,就是用深搜//多做题吧,,这个解法是搜来的,蛮好理解的 //题目大意:给出两堆牌,只能从最上和最下取,然后两个人轮流取,都按照自己最优的策略,//问说第一个人对多的 ...

  2. PTA 7-6 列出连通集(深搜+广搜)

    给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输入格式: 输入第1 ...

  3. NYOJ 10 skiing (深搜和动归)

    skiing 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描写叙述 Michael喜欢滑雪百这并不奇怪. 由于滑雪的确非常刺激.但是为了获得速度.滑的区域必须向下倾斜.并且 ...

  4. [codevs1049]棋盘染色<迭代深搜>

    题目链接:http://codevs.cn/problem/1049/ 昨天的测试题里没有打出那可爱的迭代深搜,所以今天就来练一练. 这道题其实我看着有点懵,拿着题我就这状态↓ 然后我偷偷瞄了一眼hz ...

  5. HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?

    这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others)  ...

  6. hdu 5648 DZY Loves Math 组合数+深搜(子集法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5648 题意:给定n,m(1<= n,m <= 15,000),求Σgcd(i|j,i&am ...

  7. hdu1015+hdu1016 都是十分钟以内的深搜题

    hdu1015:给定一串可用序列值,每个字符映射到一个1-26之间的整数,选择五个有序数使得满足 a-b2+c3-d4+e5=target. #include<iostream> #inc ...

  8. 2016弱校联盟十一专场10.2---Around the World(深搜+组合数、逆元)

    题目链接 https://acm.bnu.edu.cn/v3/problem_show.php?pid=52305 problem  description In ICPCCamp, there ar ...

  9. 深搜基础题目 杭电 HDU 1241

    HDU 1241 是深搜算法的入门题目,递归实现. 原题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1241 代码仅供参考,c++实现: #incl ...

随机推荐

  1. 《C++游戏开发》笔记十四 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9712321 作者:七十一雾央 新浪微博:http:/ ...

  2. 纯蓝ICON_学习教程

  3. 朗科U903 低级格式化后,量产错误:read onlypage (控制器芯片群联2251-03)的解决方案

    1. 下载群联量产工作 MPALL v3.63.0D for Netac 2. 在Setting页面,选择如下(红色矩形选中): 3. 然后执行量产,量产完成后,重新插拔就能看到U盘.

  4. Solr4.8.0源码分析(13)之LuceneCore的索引修复

    Solr4.8.0源码分析(13)之LuceneCore的索引修复 题记:今天在公司研究elasticsearch,突然看到一篇博客说elasticsearch具有索引修复功能,顿感好奇,于是点进去看 ...

  5. ExtJS 4 MVC架构讲解

    大规模客户端应用通常不好实现不好组织也不好维护,因为功能和人力的不断增加,这些应用的规模很快就会超出掌控能力,ExtJS 4 带来了一个新的应用架构,不但可以组织代码,还可以减少实现的内容新的应用架构 ...

  6. ubuntu 下安装nginx

    y@y:~$ sudo apt-get install nginx y@y:~$ sudo service nginx start y@y:~$ nginx默认使用80端口,打开浏览器输入:http: ...

  7. C++ 常用的字符串处理函数实现

    以下是一些标准库没有实现的函数,我觉得很方便就写了,估计会不定时更新. //根据一个文件的路径获取文件名 std::string file_name(const std::string& pa ...

  8. perl 正则前导字符

    uat-prx02:/root# cat a1.pl my $str="123"; if ($str =~/(abc)*/){print "111111111\n&quo ...

  9. 开放计算平台——数据仓库(Hive)权限控制

    平台数据仓库使用Hive进行构建,通过调研决定使用“SQL Standards Based Authorization in HiveServer2”对用户提交的SQL进行权限控制,也可根据实际情况选 ...

  10. 编写SQL

    create table student ( sno char(9) primary key, sname char(20) unique, ssex char(2), sage smallint, ...