1:全排列

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char ch[10];
int len,a[10];
bool p[10];
void dfs(int t)
{if(t>len){for(int i=1;i<=len;++i) printf("%c",ch[a[i]]);printf("\n");return; }for(int i=1;i<=len;++i)if(!p[i]){p[i]=1; a[t]=i;dfs(t+1);p[i]=0; a[t]=0;}
}
int main()
{scanf("%s",ch+1);len=strlen(ch+1);dfs(1);return 0;
}

2:分解因数

#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,tot,T;
void dfs(int last,int m)
{if(m==1) {tot++; return;}for(int i=last;i<=m;++i)if(!(m%i)) dfs(i,m/i);
}
int main()
{scanf("%d",&T);while(T--){scanf("%d",&n);tot=0;dfs(2,n);printf("%d\n",tot);}return 0;
}

3:走出迷宫

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char ch[110][110];
int d1[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int n,m,dis[110][110];
int d[10010][2],h,t,tx,ty;
bool p[110][110];
int main()
{int i,j;memset(dis,127/3,sizeof(dis));scanf("%d%d",&n,&m);for(i=1;i<=n;++i){getchar();for(j=1;j<=m;++j){scanf("%c",&ch[i][j]);if(ch[i][j]=='S') d[++t][0]=i,d[t][1]=j,p[i][j]=1,dis[i][j]=0;if(ch[i][j]=='T') tx=i,ty=j;}}while(h!=t){h=(h%10010)+1;int x=d[h][0],y=d[h][1];if(tx==x&&ty==y) break;for(int i=0;i<4;++i){int xx=x+d1[i][0],yy=y+d1[i][1];if(xx>0&&xx<=n&&yy>0&&yy<=m&&ch[xx][yy]!='#'){if(dis[xx][yy]>dis[x][y]+1){dis[xx][yy]=dis[x][y]+1;if(!p[xx][yy]){p[xx][yy]=1;t=(t%10010)+1;d[t][0]=xx; d[t][1]=yy;}} }}}printf("%d\n",dis[tx][ty]);return 0;} 

转载于:https://www.cnblogs.com/lris-searching/p/9403035.html

【openjudge 计算概论(A)】[函数递归练习(3)]相关推荐

  1. c语言 3个人比饭量大小,OpenJudge计算概论-比饭量【枚举法、信息数字化】

    /*====================================================================== 比饭量 总时间限制: 1000ms 内存限制: 655 ...

  2. 大象喝水编程c语言,OpenJudge计算概论-大象喝水

    /*========================================================= 大象喝水 总时间限制: 1000ms 内存限制: 65536kB 描述 一只大象 ...

  3. c语言碱基配对的算法,OpenJudge计算概论-配对碱基链

    /*===================================== 配对碱基链 总时间限制: 1000ms 内存限制: 65536kB 描述 脱氧核糖核酸(DNA)由两条互补的碱基链以双螺 ...

  4. 括号匹配openjudge c语言,OpenJudge计算概论-扩号匹配问题【这个用到了栈的思想】...

    /*====================================================================== 扩号匹配问题 总时间限制: 1000ms 内存限制: ...

  5. OpenJudge计算概论-找出第k大的数

    /*================================================ 找出第k大的数 总时间限制: 1000ms 内存限制: 1000kB 描述 用户输入N和K,然后接 ...

  6. 【openjudge 计算概论(A)】[基础编程练习(运算成分)]

    01:鸡尾酒疗法 #include<cstdio> #include<cstring> #include<algorithm> using namespace st ...

  7. OpenJudge计算概论-鸡尾酒疗法

    /*===================================== 鸡尾酒疗法 总时间限制: 1000ms 内存限制: 65536kB 描述 鸡尾酒疗法,原指"高效抗逆转录病毒治 ...

  8. OpenJudge 计算概论(A) / B04 基础练习题(4)3:买房子

    3:买房子 总时间限制:1000ms内存限制:65536kB 描述 某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员 ...

  9. OpenJudge计算概论-找和为K的两个元素

    /*============================================================== 找和为K的两个元素 总时间限制: 1000ms 内存限制: 65536 ...

  10. OpenJudge计算概论-字符串排序

    /*====================================================================== 字符串排序 总时间限制: 1000ms 内存限制: 6 ...

最新文章

  1. Linux多线程矩阵,操作系统实验——多线程计算矩阵相乘
  2. 2013年1季度中国汽车品牌口碑研究报告 ——自主A级车
  3. pgsql 前10条_白沙湾南片区11条新建道路最新进度及建成时间,已建成一条!还有一条将通车...
  4. 【sprinb-boot】maven 多模块项目:单独 spring-boot:run 某个模块
  5. Android学习第二天-android常用命令
  6. ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint
  7. php实现姓名按首字母排序的类与方法
  8. convert.todatetime指定日期格式_MATLAB的时间与日期
  9. python uuid
  10. 类似pyinstaller_pyinstaller安装与使用——那些我踩过的坑
  11. Jaca 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
  12. Cubase10.5稳定版安装包+安装教程
  13. 前后端分离,使用AppNode管理前端部署-安装
  14. Tcl/Tk的一些笔记
  15. NGUI制作Word图文混排效果
  16. 软件工程-大学体育馆管理系统用例图
  17. 射雕英雄传ol显示服务器断开,射雕OL边移动边攻击,告别站桩输出
  18. python画笑脸表情_python
  19. 京东万象:通过以太坊联盟链解决数据流通的信任难题
  20. limma包进行差异分析

热门文章

  1. 本博客自排名300到264的各项数据变化
  2. 下载用于编译的OpenJDK源码链接
  3. 技术人员要分出2成精力防范内斗及斗争方法
  4. 管理感悟:公司内斗,肯定是闲着的斗干活的
  5. Data Member的布局
  6. python读取csv文件中数据_python读取.csv文件中的数据
  7. php mysql实现删除功能_这个PHP / MySQL删除功能是否安全?
  8. java 性能框架_Java Fork Join 框架(四)性能
  9. 使用 vue_VUE使用ECharts教程
  10. c++ 编程规范技巧