1.前n个自然数的所有排列:

 #include <iostream>
#include <cstdio>
#include <cstring> using namespace std; int count=,n;
bool *b;
int *a; void dfs(int); int main()
{
scanf("%d",&n);
b=new bool[n+];
a=new int[n+];
memset(b,,n+);//这里不能写sizeof(b),b为变量指针
dfs();
return ;
}
void dfs(int t)
{
for(int i=;i<=n;i++)
{
if(b[i]) continue;
b[i]=;
a[t]=i;
if(t==n)
{
printf("%d ",count++);
for(int j=;j<=n;j++) printf("%d",a[j]);
puts("");
b[i]=;
return;
}
dfs(t+);
b[i]=;
}
}

2.迷宫是否有通路(dfs):

 #include <iostream>
#include <cstdio>
#include <cstring> using namespace std; const int N=;
char mi_gong[N][N];
bool b[N][N];
int dx[]={,-,,},dy[]={,,,-};
int n,m,x1,x2,y1,y2;
bool bb; void Create();
bool CanMove(int x,int y);
void Dfs(int x,int y,int step); int main()
{
Create();
Dfs(x1,y1,);
if(bb==) puts("小老鼠出不来,被憋死了。");
return ;
}
void Create()
{
puts("请输入迷宫的行列数以及小老鼠的起点和终点,然后再输入迷宫每个格点,.代表可以走,#代表不可以走。");
scanf("%d%d%d%d%d%d",&n,&m,&x1,&y1,&x2,&y2);
for(int i=;i<=n;i++)
{
getchar();
for(int j=;j<=m;j++)
{
scanf("%c",&mi_gong[i][j]);
}
}
}
bool CanMove(int x,int y)
{
return x>&&x<=n&&y>&&y<=m&&mi_gong[x][y]=='.'&&b[x][y]==;
}
void Dfs(int x,int y,int step)
{
if(bb) return;
if(x==x2&&y==y2)
{
puts("小老鼠可以走出迷宫。");
bb=;
return;
}
int tx,ty;
b[x][y]=;
for(int i=;i<;i++)
{
tx=x+dx[i];
ty=y+dy[i];
if(CanMove(tx,ty)) Dfs(tx,ty,step+);
}
b[x][y]=;
}

3.给出n个正整数a1,a2,a3,...,an,和一个正整数k,问是否能从n个数中选出若干个数,使其和为k:

 #include <iostream>
#include <cstdio>
#include <cstring> using namespace std; bool ans;
int n,k,*a,*s;
void dfs(int i,int sum); int main()
{
scanf("%d%d",&n,&k);
a=new int[n];
s=new int[n];
for(int i=;i<n;i++) scanf("%d",&a[i]);
int s0=;
for(int i=n-;i>=;i--) s0+=a[i],s[i]=s0;
dfs(,);
if(ans) cout<<"true";
return ;
}
void dfs(int i,int sum)
{
if(ans||sum>k||sum+s[i]<k) return;
if(i==n)
{
if(sum==k) ans=true;
return;
}
dfs(i+,sum+a[i]);
dfs(i+,sum);
}

dfs小练 【dfs】的更多相关文章

  1. 随手练——DFS小练

    1. 单词接龙 https://www.luogu.org/problemnew/show/P1019 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头 ...

  2. 洛谷P1120小木棍[DFS]

    题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编 ...

  3. 何时使用hadoop fs、hadoop dfs与hdfs dfs命令(转)

    hadoop fs:使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后 ...

  4. 何时使用hadoop fs、hadoop dfs与hdfs dfs命令

    hadoop fs:使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后 ...

  5. js 计时器小练-20160601

    今天要做一个计时器小练,所以我就做了练习,代码如下. // 初始化时间,以及定义全局量去接收计时器 var timer = 0; var t; var h, min, sec, millisec; / ...

  6. Hadoop:hadoop fs、hadoop dfs与hdfs dfs命令的区别

    http://blog.csdn.net/pipisorry/article/details/51340838 'Hadoop DFS'和'Hadoop FS'的区别 While exploring ...

  7. hadoop fs、hadoop dfs与hdfs dfs的区别

    不多说,直接上干货! hadoop fs:    使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs :   只能操作HDFS文件系统相关(包括与Local FS间的操作),前 ...

  8. Hadoop点滴-何时使用hadoop fs、hadoop dfs与hdfs dfs命令

    何时使用hadoop fs.hadoop dfs与hdfs dfs命令 编辑 删除 hadoop fs:使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs:只能操作HDFS文件 ...

  9. hadoop fs、hadoop dfs与hdfs dfs命令的区别

    Hadoop fs:使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后 ...

随机推荐

  1. Mac网络连接问题

    场景:同一个网络,其他电脑和手机可以访问远程网络端口为443的网站,如博客园,唯独我的电脑不能访问 解决方法:查看路由器的子网掩码和DNS地址,将IP设置为手动,输入ip.子网掩码和DNS即可

  2. 3-4 1449 web view

    1.app类型 不同类型的应用 区别 native app 纯原声app,Android用Java些,iOS用object c写 hybrid app 套用原声应用的外壳,既有原生的UI页面,又通过内 ...

  3. [UE4]混合动画以及Try Get Pawn Owner、Get Velocity、VectorLength的使用

    混合动画,可以混合个多动画之间的动画,多个动画相当于关键帧,关键帧之间可以生成混合出过度动画. 实时动态更新Speed参数. 知识点: 一.可以在蓝图中使用“Try Get Pawn Owner”取得 ...

  4. 6.26-EL表达式,JSTL标签

    一.EL表达式 功能: 替代jsp中数据访问时的复杂java代码 语法: ${表达式} ${(5+9)*2} 访问顺序: page--->request--->session---> ...

  5. 简单学习Git

    Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git有什么特点?简单来说就是:高端大气上档次! Git的发展历史 很多人都知道,Linus在1991年创建了开源的Linu ...

  6. jar包双击执行引用外部包问题

    大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIF ...

  7. Latex Error:‘acmart.cls’ not found 解决方案:

    windows下latex编译ACM论文模板时,出现Latex Error:‘acmart.cls’ not found,解决方案:  首先cd至模板所在目录下,然后运行以下命令:  tex acma ...

  8. 循环神经网络(RNN)

    1.    场景与应用 在循环神经网络可以用于文本生成.机器翻译还有看图描述等,在这些场景中很多都出现了RNN的身影. 2.    RNN的作用 传统的神经网络DNN或者CNN网络他们的输入和输出都是 ...

  9. FireDAC FDQuery

    http://docwiki.embarcadero.com/RADStudio/XE6/en/TFDMemTable_Questions#Q:_How_can_I_copy_all_records_ ...

  10. AI-人工智能-参考文档

     人工智能——目录汇总: https://blog.csdn.net/qq_27297393/article/details/80685474   人工智能——高数篇: https://blog.cs ...