• 【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;
    }
  • 相关阅读:
    PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件
    PlantUML类图
    Java 基于log4j的日志工具类
    RabbitMQ Hello world(二)
    redis lua 初体验
    mysql 批处理 innodb_flush_at_trx_commit 测试分析
    mysql 服务日志 5.7.29
    redis 浅谈事务
    redis list 基本操作
    redis hash 基本操作
  • 原文地址:https://www.cnblogs.com/sky-stars/p/11192136.html
Copyright © 2020-2023  润新知