【openjudge 計算概論(A)】[函數遞迴練習(3)]

來源:互聯網
上載者:User

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; } 




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.