1091_棋盘游戏
来源:互联网 发布:买衣服 知乎 编辑:程序博客网 时间:2024/06/05 08:57
// 1091_棋盘游戏.cpp : 定义控制台应用程序的入口点。//题目1091:棋盘游戏//时间限制:1 秒内存限制:32 兆特殊判题:否提交:1868解决:522//题目描述://有一个6*6的棋盘,每个棋盘上都有一个数值,现在又一个起始位置和终止位置,请找出一个从起始位置到终止位置代价最小的路径://1、只能沿上下左右四个方向移动//2、总代价是没走一步的代价之和//3、每步(从a,b到c,d)的代价是c,d上的值与其在a,b上的状态的乘积//4、初始状态为1//每走一步,状态按如下公式变化:(走这步的代价%4)+1。//输入://第一行有一个正整数n,表示有n组数据。//每组数据一开始为6*6的矩阵,矩阵的值为大于等于1小于等于10的值,然后四个整数表示起始坐标和终止坐标。//输出://输出最小代价。//样例输入://1//1 1 1 1 1 1//1 1 1 1 1 1//1 1 1 1 1 1//1 1 1 1 1 1//1 1 1 1 1 1//1 1 1 1 1 1//0 0 5 5//样例输出://23//来源://2005年上海交通大学计算机研究生机试真题#include "stdafx.h"#include "stdio.h"#include "iostream"#include "limits.h"#include "string.h"using namespace std;int chess[6][6];int min_cost;int start_a,start_b,end_c,end_d;void func(int a,int b,int cost,int state,int visit[6][6]){ if(a == end_c && b == end_d) min_cost = min(cost,min_cost); else{ if(cost<min_cost){ if(b-1>=0 && !visit[a][b-1]){ visit[a][b-1] = 1; func(a,b-1,cost+chess[a][b-1]*state,(chess[a][b-1]*state)%4+1,visit); visit[a][b-1] = 0; } if(b+1<6 && !visit[a][b+1]){ visit[a][b+1] = 1; func(a,b+1,cost+chess[a][b+1]*state,(chess[a][b+1]*state)%4+1,visit); visit[a][b+1] = 0; } if(a+1<6 && !visit[a+1][b]){ visit[a+1][b] = 1; func(a+1,b,cost+chess[a+1][b]*state,(chess[a+1][b]*state)%4+1,visit); visit[a+1][b] = 0; } if(a-1>=0 && !visit[a-1][b]){ visit[a-1][b] = 1; func(a-1,b,cost+chess[a-1][b]*state,(chess[a-1][b]*state)%4+1,visit); visit[a-1][b] = 0; } } }}int main(){ int n; cin>>n; while(n--){ for(int i = 0;i<6;i++) for (int j = 0;j<6;j++) cin>>chess[i][j]; cin>>start_a>>start_b>>end_c>>end_d; min_cost = INT_MAX; int visit[6][6]; memset(visit,0,sizeof(visit)); func(start_a,start_b,0,1,visit); cout<<min_cost<<endl; } return 0;}
0 0
- 1091_棋盘游戏
- 题目1091:棋盘游戏
- 题目1091:棋盘游戏
- 九度[1091]-棋盘游戏
- HDU 1281 棋盘游戏 大牛略过~^_^
- 棋盘游戏
- 棋盘游戏
- 棋盘游戏
- 棋盘游戏
- 棋盘游戏
- 棋盘游戏
- 棋盘游戏
- 棋盘游戏
- 九度OJ(1091)棋盘游戏
- 九度OJ 1091 棋盘游戏
- 九度题目1091:棋盘游戏
- 九度OJ--题目1091:棋盘游戏
- 题目1091:棋盘游戏 -- DFS BFS
- error: ‘gnu_inline’ attribute present on ‘libc_name_p’
- Custom View
- 设计模式 - SingleToned单例模式
- 最大公约数和最小公倍数
- 随笔
- 1091_棋盘游戏
- 1月18日(作业2)
- 用Hashcat每秒计算1.4亿个密码,破解隔壁WIFI密码
- [Windows7] 修改安装程序目录 - 选择默认程序问题(打不开)
- 使用AJAX完成用户名是否存在异步校验
- 人工智能免费入门课程
- POJ 3831 Open-air shopping malls 已被翻译
- qt windows下使用tcpsocket,连接上了,但是数据发不出去?
- webrtc android 编译