漫游小镇

2023-11-10 13:50
文章标签 漫游 小镇

本文主要是介绍漫游小镇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

严禁暴力解决最后一个点!!

题目描述

一个正方形的镇区分为N×N个小方块(1≤N≤7)。农场位于方格的左上角,集市位于左下角。奶牛Bessie穿过小镇。从左上角走到左下角,每次可以走上,下,左,右,但不能走出方格的外面,每个格经过且仅经过一次。当N=3时,贝茜的漫游路径可能如下图所示:

Failed to load picture

写一个程序,对于给出的N值,计算Bessie从农场走到集市有多少条路径。

输入输出格式

输入格式:

一行,一个整数N。(1≤N≤7)

输出格式:

只有一行。输出一个整数表示路径的数量。

输入输出样例

输入样例:
2
输出样例:
1

思路:不可硬搜,可通过出路条数判断方向。
//程序名:新的C++程序
//作者: 

#include<iostream>using namespace std;
int dx[4]={-1,1,0,0},dy[4]={0,0,-1,1},n,ans,way[8][8];//方向,答案,路线数
bool f[8][8];//是否经过
bool in(int x,int y)//是否在界内
{if(x>=1&&x<=n&&y>=1&&y<=n)return true;return false;
}
bool must(int x,int y)//出路是否足够
{if(x==n&&y==1){if(way[x][y]==0)return true;//到达终点并且已无出路else return false;}else {if(way[x][y]==1)return true;//未到达终点并且有一条出路else return false;}
}
void dfs(int x,int y,int d) 
{if(x==n&&y==1)//到达终点并且全部走完
    {if(d==n*n)ans++;return;}f[x][y]=true;//占领该点int p=0,fx,nx,ny;for(int i=0;i<4;i++) {nx=x+dx[i],ny=y+dy[i];if(!in(nx, ny)||f[nx][ny])continue;//出界或已经过way[nx][ny]--;//出路减少if(must(nx,ny))//符合条件的路数(唯一选择)
        {fx=i;p++;}}if(p==1)dfs(x+dx[fx],y+dy[fx],d+1);//只有一条出路else if(p==0)//如果无唯一选择则全搜
    {for(int i=0;i<4;i++) {nx=x+dx[i],ny=y+dy[i];if(!in(nx,ny)||f[nx][ny])continue;dfs(nx,ny,d+1);}}f[x][y]=false;//回溯for(int i=0;i<4;i++) {nx=x+dx[i],ny=y+dy[i];if(!in(nx,ny)||f[nx][ny])continue;way[nx][ny]++;}
}int main() 
{cin>>n;for(int i=1;i<=n;i++)//统计出路
    {for(int j=1;j<=n;j++){if(i==1||i==n){if(j==1||j==n)way[i][j]=2;else way[i][j]=3;continue;}if(j==1||j==n){if(i==1||i==n)way[i][j]=2;else way[i][j]=3;continue;}way[i][j]=4;}} dfs(1,1,1);cout<<ans<<endl;return 0;
}
View Code

 



转载于:https://www.cnblogs.com/2006hanziwei/p/10744187.html

这篇关于漫游小镇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/383043

相关文章

基于HTML5的WebGL经典3D虚拟机房漫游动画

第一人称在 3D 中的用法要参考第一人称在射击游戏中的使用,第一人称射击游戏(FPS)是以第一人称视角为中心围绕枪和其他武器为基础的视频游戏类型 ; 也就是说,玩家通过主角的眼睛来体验动作。自从流派开始以来,先进的 3D 和伪 3D 图形已经对硬件发展提出了挑战,而多人游戏已经不可或缺。   Doom 的截图,这个流派的突破游戏之一,展示了第一人称射击游戏的典型视角   现在博物馆或者公司也经

基于HTML5及WebGL开发的2D3D第一人称漫游进行碰撞检测

为了实现一个基于HTML5的场景小游戏,我采用了HT for Web来实现,短短200行代码,我就能实现用“第一人称”来操作前进后退上下左右,并且实现了碰撞检测。 先来看下实现的效果: http://hightopo.com/guide/guide/core/3d/ht-3d-guide.html#ref_collision 或者http://v.youku.com/v_show/id_XMzA

hello程序的漫游历程

hello程序的运行过程 #include<stdio.h>int main(){printf("hello, world\n);return 0;} 相信大家都知道这个著名的家伙,hello world,万物起源。 本文的目的就是一起来看看,当这个hello程序在系统上运行时,系统发生了什么以及为什么会这样。 hello程序的生命周期是从一个源文件(源程序)开始的,文件名为hello

某旅游小镇定岗定编项目成功案例纪实

——结合历史数据预测忙闲情况,对人员进行灵活排班,解决忙闲不均 【客户行业】文旅行业 【问题类型】定岗定编 【客户背景】 随着国家住建部对产业分类标准的不断完善,特色小镇作为其中一类标准受到越来越多的关注。在文旅行业蓬勃发展的大背景下,国家提倡特色小镇向“强调文化IP”方向发展,倡导跨界融合,以推动特色小镇的不断创新。在这个背景下,南方某旅游小镇被批准建设,该小镇是一个大型文化主题公园,占

LeetCode | 997.找到小镇的法官

这道题拿到后很明显是一个图论的简单出度入度问题,法官的标志就是图中出度为0,入度为n-1的结点,而且根据题目条件,满足这一条件的结点有且只有一个 但是我不知道力扣中关于图论的邻接表和邻接矩阵这些数据结构是需要自己写还是已经有现有的,我就自己写了个邻接表的类,然后根据条件返回法官结点,自然,多写了这么多代码,运行时间直接加倍,我直接垫底了555 class GraphAdjList:def _

Web Service漫游记(下)——RESTful

在上一章节提到过,Web Service(以下简称ws)除了SOAP之外还分为RESTful,RESTful全称REpresentation State Transfer(以下简称REST),与SOAP不同的是它不属于协议,RESTful只是一种风格。 REST因为定义较少的标准协议所以更加快速,也更加节省带宽和资源,同样REST也是支持跨平台和跨语言的,同时也可以支持基于SOAP的实现,与SO

Web Service漫游记(上)——SOAP

什么是web service web service(以下简称ws)是服务与服务,机器与机器之间交流沟通的技术,可以保证不同平台间的服务相互操作,很多不同语言开发的平台服务之前可以通过ws相互通信,这一方式使得ws可以跨平台和跨语言使用。 ws有三个重要的组成部件 UDDI UDDI是Universal Description,Discovery,Integration的缩写,是一个基于X

720云「3D空间漫游」功能爆发!户型标注、自动导览、切换视图…

一、新增 [开场封面] 支持图片、视频开场 作品第一印象必须惊艳!使用频率极高的功能,终于给3D漫游安排上啦~你可以自定义上传一张图片或一段视频,支持对桌面端、移动端分别进行设置并预览,完美适配不同终端。 二、升级模型交互体验,直观更好用! 对3D漫游来说,3D模型显示通常是作品必要的一部分,它可是妥妥的3D沙盘,观众打开模型就能快速找到要去的点位。为了让这个高频

EPIC Fantasy Town - Low Poly 3D Art(幻想乡村小镇模型)

EPIC 幻想城镇包 EPIC Fantasy Town Pack提供了一个以幻想为主题的多边形风格游戏,适用于TopDown、RPG、冒险、社交和RTS游戏。这个包允许你创建自己的美丽而多样的幻想城镇和角色。 我们创建了这个软件包,可以与 EPIC Fantasy Village 包无缝配合。 关键功能 比前几集更详细。 提供了适合幻想城镇的各种角色。 优化的网格适用于移动设备、AR、VR和P

智能体之斯坦福AI小镇(Generative Agents: Interactive Simulacra of Human Behavior)

相关代码地址见文末 论文地址:Generative Agents: Interactive Simulacra of Human Behavior | Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology 1.概述         论文提出了一种多个智能体进行协同,进而模拟