【openjudge 计算概论(A)】[函数递归练习(3)]
来源:互联网 发布:wifi网络延迟高 编辑:程序博客网 时间:2024/04/30 09:54
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; }
0 0
- 【openjudge 计算概论(A)】[函数递归练习(3)]
- 【openjudge 计算概论(A)】[函数递归练习(4)]
- 【openjudge 计算概论(A)】[函数递归练习(2)]
- 【openjudge 计算概论(A)】[函数递归练习(1)]
- 【openjudge 计算概论(A)】[指针练习]
- 【openjudge 计算概论(A)】[编程练习(数组练习)]
- 【openjudge 计算概论(A)】[编程练习(字符串)]
- 【openjudge 计算概论(A)】[基础编程练习2]
- 【openjudge 计算概论(A)】[基础编程练习1]
- 【openjudge 计算概论(A)】[ 函数与字符串练习(2)]
- 【openjudge 计算概论(A)】[函数与字符串练习(1)]
- 【openjudge 计算概论(A)】[基础编程练习(控制成分)]
- 【openjudge 计算概论(A)】[基础编程练习(运算成分)]
- 【openjudge 计算概论(A)】[基础编程练习(数据成分)]
- 【openjudge 计算概论(A)】[结构体与链表练习]
- openjudge 计算概论 函数与字符串练习(1)2:字符串排序
- openjudge 计算概论基础编程练习(控制成分)
- openjudge 计算概论-数组练习-错误侦测
- MySql 各种数据库引擎的简单对比
- 数据结构-火车调度实验(合作)
- 如何在spring框架中给接口属性注入??
- 单片机的“内芯”世界
- 第八周--倒写字符
- 【openjudge 计算概论(A)】[函数递归练习(3)]
- 第七周自建算法库——顺序环形队列
- epoll机制:epoll_create、epoll_ctl、epoll_wait、close
- Quartz使用示例总结
- Web项目取消删除去除与SVN的关联
- Some Questions and Answers After Class Gates and Circuits
- oracle 存储过程 输出结果和正常查询不一样
- 第八周项目2-建立链串的算法库
- ios框架和服务