题目1432:蓝桥杯2013年第四届真题-剪格子

#include<iostream>

#include<algorithm>

using namespace std;

int n,m;

int maze[10][10];

int vis[10][10];

int dx[4]={1,0,-1,0};//左右移动

int dy[4]={0,1,0,-1};//上下移动

int sum=0,total=0;

int ans=100;

void dfs(int x,int y,int total,int step){//dfs+回溯

//终止条件1:现有总和满足总数一半

if(total==sum/2){

ans=min(ans,step);

return;

}

//终止条件2:现有总和超过总数一半

if(total>sum/2){

return;

}

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

int px=x+dx[i];

int py=y+dy[i];

if(vis[px][py]==0&&px>=0&&px<n&&py>=0&&py<m){

vis[px][py]=1;

dfs(px,py,total+maze[px][py],step+1);

vis[px][py]=0;//回溯

}

}

}

int main(){

cin>>m>>n;

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

for(int j=0;j<m;j++){

cin>>maze[i][j];

sum+=maze[i][j];

}

}

vis[0][0]=1;

dfs(0,0,maze[0][0],1);

if(ans!=100){

cout<<ans<<endl;

}

}

相关推荐
北温凉2 小时前
EEG 有效连接分析(基于 MVGC 与图论)
图论·eeg·mvgc·脑功能连接
有一个好名字2 小时前
力扣-电话号码组合
算法·leetcode·职场和发展
闻缺陷则喜何志丹2 小时前
【数论 快速指数幂 龟速乘】P8652 [蓝桥杯 2017 国 C] 小数第 n 位|普及+
c++·蓝桥杯·数论·快速指数幂·龟速乘
鱼跃鹰飞2 小时前
Leetcode会员尊享面试100题:1086:前五科的均分
算法·leetcode·职场和发展
༾冬瓜大侠༿2 小时前
C++string
c语言·开发语言·c++·算法
Lethehong2 小时前
探索高效工作流的秘密:GLM-4.7 与 Dify 平台深度集成实践
大数据·人工智能·算法
Yeats_Liao2 小时前
微调决策树:何时使用Prompt Engineering,何时选择Fine-tuning?
前端·人工智能·深度学习·算法·决策树·机器学习·prompt
sin_hielo2 小时前
leetcode 3010
数据结构·算法·leetcode
sheji34162 小时前
【开题答辩全过程】以 基于协同过滤算法电影个性化推荐系统设计与实现为例,包含答辩的问题和答案
算法