度小满第二题暴搜问题。

#include<bits/stdc++.h>
using namespace std;
int N,K;

int ans = 0xffffff;

void dfs(vector<vector<char> > &s,int sx,int sy,int sum,vector<vector<int> > &flag){ 
    if(sx == N-1 && sy == N-1){
        ans = min(ans,sum);
        return;
    }
   
    int dx[4] = {1,0,-1,0},dy[4] = {0,1,0,-1};
    
    for(int i = 0; i < 4;i++){
		int x = sx + dx[i];
        int y = sy + dy[i];
        if(x >= 0 && x < N && y >= 0 && y < N && flag[x][y] && s[x][y] != '1'){
            int t = sum;
            if(s[x][y] == '#'){
                sum += (K + 1);
            }
            else{
                sum += 1;
            }
            flag[x][y] = 0;
            dfs(s,x,y,sum,flag);
            flag[x][y] = 1;
            sum = t;
        }
    }
}

int main(){
    cin>>N>>K;
    vector<vector<char> > s(N,vector<char>(N,'0')); 
    for(int i = 0; i < N;i++){
        for(int j = 0; j < N;j++){
            cin>>s[i][j];
        }
    }
    vector<vector<int> > flag(N,vector<int>(N,1));
    dfs(s,0,0,0,flag);
    if(ans == 0xffffff){
    	cout<<"No Solution"<<endl;
	}else{
		cout<<ans<<endl;
	}
    return 0;
}
奈何,我一个初始化写错了没有ac,难受。#笔试题目##度小满#
全部评论

相关推荐

白火同学:先说结论,对于一份实习简历来说,整体还是挺不错的,技术深度和广度都到位,找到一份中小厂的实习没啥问题。 再说说能优化的点吧。 1、量化结果,项目中很多工作量化一下结果给面试官的感受会更直观一些,也能体现你对应用该项技术的理解(在众多技术为什么要用它,运行性能或者说开发效率往往是一大考虑指标;而不是说大家做这种功能都用它,所以我用它)。 2、突出亮点,项目中可以从“工作职责”择一些“个人亮点”另写一块,优先去写开发过程中遇到的xx问题,使用xx技术达到xx效果,针对性去写一些疑杂难的功能,能带出你个人思考和解决的过程。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务