zoukankan      html  css  js  c++  java
  • 【深搜+set使用学习】POJ3050-Hopscotch

    【题目大意】

    给出一个5*5的方格,求出从任意一点出发走6步组成的不同序列数。

    【思路】

    dfs的水题,当作set使用方法的初次学习。每次从任意一点出发进行一次dfs,将序列加入set,最后输出set.size()即可。

     1 #include<iostream>
     2 #include<cstring>
     3 #include<set>
     4 using namespace std;
     5 int map[6][6];
     6 int dx[4]={0,0,1,-1};
     7 int dy[4]={1,-1,0,0};
     8 set<int> s;
     9 
    10 void dfs(int x,int y,int step,int sum)
    11 {
    12     if (step==6) 
    13     {
    14         s.insert(sum);
    15         return;
    16     }
    17     for (int i=0;i<4;i++)
    18     {
    19         int nowx=x+dx[i],nowy=y+dy[i];
    20         if (nowx<0 || nowy<0 || nowx>=5 || nowy>=5) continue;
    21         dfs(nowx,nowy,step+1,sum*10+map[nowx][nowy]);
    22     }
    23 }
    24 
    25 int main()
    26 {
    27     for (int i=0;i<5;i++)
    28         for (int j=0;j<5;j++) scanf("%d",&map[i][j]);
    29     for (int i=0;i<5;i++)
    30         for (int j=0;j<5;j++)
    31             dfs(i,j,1,map[i][j]);
    32     cout<<s.size()<<endl;
    33     return 0;
    34 }
  • 相关阅读:
    demo12-回到顶部
    demo11-友情链接
    demo10-超链接标签
    demo09-程序员练习
    demo08-图片标签
    demo07-盒子标签
    demo06-字体标签
    demo05-换行标签
    转&nbsp;j2ee&nbsp;.线程池.对象池,连接池
    几种开源Java&nbsp;Web容器线程池…
  • 原文地址:https://www.cnblogs.com/iiyiyi/p/4738787.html
Copyright © 2011-2022 走看看