zoukankan      html  css  js  c++  java
  • 【POJ

    -->Hopscotch

    直接写中文了

    Descriptions:

    奶牛们以一种独特的方式玩孩子们的跳房子游戏。 奶牛们创造了一个5x5的格子 

    他们熟练地跳上其中的一个格子,可以前后左右地跳(不能对角)到另一个格子上。之后继续跳(可能跳到曾经跳过的格子上)。 

    他们总共跳5次,路径可以看作一个六位数 (准确的说是一个六位序列,如000201是可行的). 

    请你找到这样的六位序列的总数

    Input

    * 输入一个5x5的地图

    Output

    * 所有可能六位序列的总数

    Sample Input

    1 1 1 1 1
    1 1 1 1 1
    1 1 1 1 1
    1 1 1 2 1
    1 1 1 1 1

    Sample Output

    15

    Hint

    输出说明 
    111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111,和 212121 是可行的. 没有其他可行的了
     
    这题简单粗暴,直接对每一个位置走5步得出一个6位序列数,因为序列要求不同,直接借助ser容器即可,把得到的6位序列数存入set,最后输出set的大小即可
     
    AC代码
    #include <iostream>
    #include <cstdio>
    #include <fstream>
    #include <algorithm>
    #include <cmath>
    #include <deque>
    #include <vector>
    #include <queue>
    #include <string>
    #include <cstring>
    #include <map>
    #include <stack>
    #include <set>
    #include <sstream>
    #define mod 1000000007
    #define eps 1e-6
    #define ll long long
    #define INF 0x3f3f3f3f
    #define MEM(x,y) memset(x,y,sizeof(x))
    #define Maxn 10
    using namespace std;
    int n=5;//5*5的地图
    int dt[][2]= {{1,0},{-1,0},{0,1},{0,-1}};//4个方向
    set<int>number;//存不同的序列
    int mp[Maxn][Maxn];//地图
    void dfs(int x,int y,int step,int num)//在(x,y)处,序列长度,这个时候的数字
    {
       if(step==6)//序列为6,放入ser容器
       {
           number.insert(num);
           return;
       }
       for(int i=0;i<4;i++)//四个方向走路
       {
           int tx=x+dt[i][0];
           int ty=y+dt[i][1];
           if(tx>=0&&ty>=0&&tx<n&&ty<n)//在地图内
           {
               step++;
               dfs(tx,ty,step,num*10+mp[tx][ty]);//更新状态
               step--;//回溯
           }
       }
    }
    int main()
    {
        for(int i=0;i<n;i++)//输入
            for(int j=0;j<n;j++)
                cin>>mp[i][j];
        for(int i=0;i<n;i++)//从每一个点开始dfs走5步
            for(int j=0;j<n;j++)        
                dfs(i,j,1,mp[i][j]);        
        cout<<number.size()<<endl;
    }
  • 相关阅读:
    k8s 集群多节点 calico指定网卡
    用Python建立最简单的web服务器
    MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比
    转化Excel表格为php配置文件
    dockers的容器删除
    php中csv文件的下载
    Ubuntu下mysql的卸载重装
    centos7的web环境安装配置
    lua随机数函数
    Lua 自定义函数string.split
  • 原文地址:https://www.cnblogs.com/sky-stars/p/11192136.html
Copyright © 2011-2022 走看看