Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SDUT 1125 New Game 【 DFS 】

SDUT 1125 New Game 【 DFS 】

作者头像
Lokinli
发布于 2023-03-09 06:30:09
发布于 2023-03-09 06:30:09
12700
代码可运行
举报
文章被收录于专栏:以终为始以终为始
运行总次数:0
代码可运行

Description

New game是在一个M*M的特殊棋盘(棋盘的第i行都标上了数字i)上进行的新式游戏。给定一个数字N,要求选手把一个棋子从左上角(1,1)移到右下角(M,M),移动时只能往右或往下。要求移动后经过的数字和为N,且拐弯的次数最少。 如果对给出的N,选手不能找出移动方案使得经过的数字和为N或找出的路径拐弯次数不是最少,选手就输了。所以,选手一定千方百计要找出满足条件的路径!!

Input

两个正整数M,N(其中M<=16),数据保证有解。

Output

最少拐弯数。

Sample

Input 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
4 22

Output 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1

题解:DFS 搜索,注意判断拐弯的次数,第一次无论是向右还是向下都是不算的,只有路径发生变化,才算是,所以可以设置一个 flag 值,因为只有向下和向右两种情况,只要是0 和 1 就可以,与上次不相同, num ++ 。最后还是看了一下题解才知道自己错哪里了。

(愈来愈菜,嘤)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <bits/stdc++.h>
using namespace std;
const int N = 500;
const int inf = 0x3f3f3f3f;
int n,m,ans;
int gra[N][N];
int vis[N][N];
int dx[4] = {1,0};
int dy[4] = {0,1};
// sum 是到目前为止的和
// num 是转弯的次数
void dfs(int x, int y,int flag, int sum, int num)
{
    if(sum > n) return ;
    if(num > ans) return ;
    if(x == m && y == m){
        if(sum == n){
            ans = min(ans,num);
        }
        return ;
    }

    for(int i = 0; i <= 1; i ++) {

        int tx = x + dx[i];
        int ty = y + dy[i];
        if(tx >= 1 && tx <= m && ty >= 1 && ty <= m && !vis[tx][ty]){
            vis[tx][ty] = 1;
           if(sum==1)
			dfs(tx,ty,i,sum+gra[tx][ty],num);
			else
			{
				if(i!=flag)
					dfs(tx,ty,i,sum+gra[tx][ty],num+1);
				else
					dfs(tx,ty,i,sum+gra[tx][ty],num);
			}
			vis[tx][ty]=0;
        }

    }
}

int main()
{
    scanf("%d %d", &m, &n);
    memset(vis,0,sizeof(vis));
    for(int i = 1; i <= m; i ++){
        for(int j = 1;j <= m; j ++){
            gra[i][j] = i;
        }
    }
    ans = inf;
    vis[1][1] = 1;
    dfs(1,1,0,1,0);
    printf("%d\n",ans);
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
5-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇
下载参考:    3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案基础篇(项目功能演示--GPRS )
杨奉武
2019/03/19
6960
5-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇
2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据)1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系
因为那个软件只能监听咱自己电脑上的数据,所以咱就用电脑开个热点,然后让Wi-Fi和APP连接咱电脑的热点,这样就能监听数据了
杨奉武
2019/05/10
6820
2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据)1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系
3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(项目功能演示--远程升级WIFI模块程序)2-STM32物联网开发WIFI(ESP8266)+GPRS(Ai
这一节演示一下远程升级WIFI模块程序,今天我又把上位机和底层程序优化了下,主要是根据做项目的时候别人提的问题优化的.
杨奉武
2019/03/04
9970
3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(项目功能演示--远程升级WIFI模块程序)2-STM32物联网开发WIFI(ESP8266)+GPRS(Ai
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据)2-STM32物联网开发WIFI(ESP8266)+G
咱们先监听电脑的软件的网络通信数据,然后再说怎么监听Wi-Fi和APP的软件的网络通信数据
杨奉武
2019/05/09
6060
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据)2-STM32物联网开发WIFI(ESP8266)+G
7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(TCP实现HTTP访问下载文件,明白底层如何实现的,地基稳才踏实)
其实HTTP就是建立在TCP通信上,然后自己又封装了一套协议罢了,不过协议也不算多,协议内容都是用字符串发送的,也好理解
杨奉武
2019/05/13
7550
7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(TCP实现HTTP访问下载文件,明白底层如何实现的,地基稳才踏实)
07-STM32+ESP8266+AIR202远程升级方案-功能2-STM32+Air202(GPRS)实现利用http远程更新STM32程序(定时访问升级,备份升级)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_B/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2020/08/19
5480
07-STM32+ESP8266+AIR202远程升级方案-功能2-STM32+Air202(GPRS)实现利用http远程更新STM32程序(定时访问升级,备份升级)
1-学习GPRS_Air202(Air202开发板介绍)
记得自己第一次实现远程通信是在学校里用SIM900A实现的,随着WIFI模块的普及自己就开始用WIFI模块了,当然WIFI模块已经用的很... WIFI模块要想实现远程控制必须连接路由器,其实在做王哥的项目的时候就发现了Air202,因为当时感觉WIFI还是比Air用手机卡便宜,所以 项目就用WiFi模块做的,但是对于没有无线网的场合,,,那就看GPRS的了,所以自己准备出GPRS的开发板和一系列教程 用Air实现远程控制还是同学小于那天晚上让我去他公司玩,然后大概花了半小时的时间就用Air连接了自己的MQ
杨奉武
2018/06/01
3.1K2
21-STM32+ESP8266+AIR202/302远程升级方案-扩展应用-移植远程升级包实现STM32F407VET6+串口网络模组(ESP8266/Air202/Air302)使用http或者h
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_B/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2021/03/09
5320
4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(云端电脑(Windows)安装配置数据库,使用本地Navicat for MySQL和手机APP 远程连接测
3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(安装配置数据库,使用Navicat for MySQL和手机APP 连接测试) 根据前面的教程把软件复制到云
杨奉武
2019/03/15
1.1K0
05-STM32+ESP8266+AIR202远程升级篇-功能2-STM32自动访问升级,基于air202(TCP,HTTP)(备份升级)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_B/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2020/07/14
5820
05-STM32+ESP8266+AIR202远程升级篇-功能2-STM32自动访问升级,基于air202(TCP,HTTP)(备份升级)
1-STM32+ESP8266+AIR202基本控制篇: 硬件使用说明
板载说明 1.主控MCU:  STM32F103C8T6 2.WIFI模块:  ESP8266-12F/E 3.GPRS模块: AIR202 (2G,移动/联通) 4.DHT11,一路继电器输出,OLED液晶 拨动开关说明
杨奉武
2020/06/28
1.5K0
6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇
首先确定自己的固件打开了SSL,升级篇里面的固件我打开了SSL,如果自己下载的是这个固件SSL就打开了
杨奉武
2019/06/03
4570
10-STM32+ESP8266+AIR202远程升级方案-功能3-手机APP控制STM32远程更新固件程序,基于ESP8266
1.单片机串口1作为日志打印口,串口2和模块通信 (STM32)PA3 -- TX(WiFi) (STM32)PA2 -- RX(WiFi)
杨奉武
2020/08/31
9600
12-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇
,8266AT指令版本,实现远程升级单片机程序....主要问题是两个printf离得太近,wifi当成一个数据了
杨奉武
2019/05/19
9220
测试STM32远程乒乓升级,基于GPRS模块AT指令TCP透传方式,MQTT通信控制升级
  这节和上一节的功能一样(只不过上节是利用Wi-Fi模块,这节是利用GPRS模块)
杨奉武
2019/11/18
1.4K0
5-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇
 说一下哎,以前的篇章都是用的MQTTnet  ,但是我弄了好长时间都没有测试好这个的SSL,所以我就换了一个,用的M2Mqtt
杨奉武
2019/06/03
6090
1-WIFI(ESP8266)模块远程升级程序,方案总揽
我的这个升级篇的代码适用于自己所有的带WIFI模块的开发板,升级功能实质上是通过MQTT把数据发给WIFI模块,然后模块进行保存和运行.
杨奉武
2019/02/13
2K0
003-STM32+ESP8266+AIR202基本控制方案
(STM32) PA3 -- TX (WiFi) (STM32) PA2 -- RX (WiFi)
杨奉武
2020/08/28
4850
6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇-优化升级(安装Apache (Web服务器)软件,测试HTTP)
为了和SDK升级保持协议一致,花了两天时间实现了用LUA开发,MQTT+HTTP方式实现远程升级
杨奉武
2019/04/18
6020
6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇-优化升级(安装Apache (Web服务器)软件,测试HTTP)
基于小熊派WIFI-ESP8266实践(上)
ESP8266相信大家再熟悉不过了,这个东西从我大学开始一直用到工作,至今已经有好几个年头了。这是一款无线WIFI模块,专为移动设备,可穿戴电子产品和物联应用设计,可以通过AT指令配置,和单片机上的串口进行通信,利用WIFI进行数据传输。
杨源鑫
2020/05/21
2.3K0
推荐阅读
5-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇
6960
2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据)1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系
6820
3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(项目功能演示--远程升级WIFI模块程序)2-STM32物联网开发WIFI(ESP8266)+GPRS(Ai
9970
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据)2-STM32物联网开发WIFI(ESP8266)+G
6060
7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(TCP实现HTTP访问下载文件,明白底层如何实现的,地基稳才踏实)
7550
07-STM32+ESP8266+AIR202远程升级方案-功能2-STM32+Air202(GPRS)实现利用http远程更新STM32程序(定时访问升级,备份升级)
5480
1-学习GPRS_Air202(Air202开发板介绍)
3.1K2
21-STM32+ESP8266+AIR202/302远程升级方案-扩展应用-移植远程升级包实现STM32F407VET6+串口网络模组(ESP8266/Air202/Air302)使用http或者h
5320
4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(云端电脑(Windows)安装配置数据库,使用本地Navicat for MySQL和手机APP 远程连接测
1.1K0
05-STM32+ESP8266+AIR202远程升级篇-功能2-STM32自动访问升级,基于air202(TCP,HTTP)(备份升级)
5820
1-STM32+ESP8266+AIR202基本控制篇: 硬件使用说明
1.5K0
6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇
4570
10-STM32+ESP8266+AIR202远程升级方案-功能3-手机APP控制STM32远程更新固件程序,基于ESP8266
9600
12-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇
9220
测试STM32远程乒乓升级,基于GPRS模块AT指令TCP透传方式,MQTT通信控制升级
1.4K0
5-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇
6090
1-WIFI(ESP8266)模块远程升级程序,方案总揽
2K0
003-STM32+ESP8266+AIR202基本控制方案
4850
6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇-优化升级(安装Apache (Web服务器)软件,测试HTTP)
6020
基于小熊派WIFI-ESP8266实践(上)
2.3K0
相关推荐
5-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验