文章

13

粉丝

386

获赞

2

访问

65.0k

头像
DFS解决
P1277 上海交通大学机试题
发布于2022年3月5日 16:57
阅读数 4.4k

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

int matrix[6][6], a, b, c, d, minimum;
bool visited[6][6];
int pos[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};

void dfs(int x1, int y1, int x2, int y2, int statue, int price){
    if(x1 == x2 && y1 == y2) minimum = min(minimum, price);
    else{
        for(int i = 0; i < 4; i++){
            int nx = x1 + pos[i][0];
            int ny = y1 + pos[i][1];
            if(nx < 0 || nx > 5 || ny < 0 || ny > 5 || visited[nx][ny]) continue;
            visited[nx][ny] = true;
            int temp = statue * matrix[nx][ny];
            dfs(nx, ny, x2, y2, temp % 4 + 1, price + temp);
            visited[nx][ny] = false;
        }
    }
}

int main(){
    while(scanf("%d", &matrix[0][0]) != EOF){
        memset(visited, false, sizeof(visited));
        for(int i = 0; i < 6; i++){
            for(int j = 0; j < 6; j++){
           ...
登录查看完整内容


登录后发布评论

1 条评论
GlaucusD VIP
2024年3月13日 11:04

为什么我感觉有点读不懂题

赞(0)