九度又可以刷题啦~~

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:1859

解决:517

题目描述:

有一个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

简单回溯,但是要注意状态的变化。

//Asimple
#include <bits/stdc++.h>
#define INF 0xfffffff
#define mod 10007
#define swap(a,b,t) t = a, a = b, b = t
#define CLS(a, v) memset(a, v, sizeof(a))
#define debug(a)  cout << #a << " = "  << a <<endl
#define abs(x) x<0?-x:x
#define srd(a) scanf("%d", &a)
#define src(a) scanf("%c", &a)
#define srs(a) scanf("%s", a)
#define srdd(a,b) scanf("%d %d",&a, &b)
#define srddd(a,b,c) scanf("%d %d %d",&a, &b, &c)
#define prd(a) printf("%d\n", a)
#define prdd(a,b) printf("%d %d\n",a, b)
#define prs(a) printf("%s\n", a)
#define prc(a) printf("%c", a)
using namespace std;
typedef long long ll;
const int maxn = 6;
int dx[] = {-1,1,0,0}, dy[]={0,0,-1,1};
int n, m, num, T, k, len, ans, sum;
int edx, edy, stx, sty;
int Map[maxn][maxn];
bool vis[maxn][maxn];bool wrong(int x, int y) {return x<0 || x>=maxn || y<0 || y>=maxn || vis[x][y];
}void output() {prd(ans);
}void solve(int x, int y, int step, int v) {if( ans > step ) {if( x == edx && y == edy ) {ans = step;return ;} else {for(int i=0; i<4; i++) {int xx = x + dx[i];int yy = y + dy[i];if( !wrong(xx, yy) ) {int cost = v * Map[xx][yy];int st = step+cost;int va = cost%4 + 1;vis[xx][yy] = true;solve(xx, yy, st, va);vis[xx][yy] = false;}}}}
}void input() {srd(n);while( n -- ) {CLS(vis, false);for(int i=0; i<maxn; i++) {for(int j=0; j<maxn; j++) {srd(Map[i][j]);}}srdd(stx, sty);srdd(edx, edy);ans = INF; solve(stx, sty, 0, 1);output();}
}int main(){input();return 0;
}

转载于:https://www.cnblogs.com/Asimple/p/6377739.html

每日一九度之 题目1091:棋盘游戏相关推荐

  1. 每日一九度之 题目1083:特殊乘法

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5319 解决:3606 题目描述: 写个算法,对2个小于1000000000的输入,求结果. 特殊乘法举例:123 * 45 = 1*4 + ...

  2. 每日一九度之 题目1030:毕业bg

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2046 解决:894 题目描述: 每年毕业的季节都会有大量毕业生发起狂欢,好朋友们相约吃散伙饭,网络上称为"bg".参加 ...

  3. 九度OJ 题目1179:阶乘

    /********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1179:阶乘 * 来源:http://ac.jo ...

  4. 九度OJ 题目1069:查找学生信息 随笔

    ** 九度OJ 题目1069:查找学生信息 ** 题目描述如下: 输入N个学生的信息,然后进行查询. 输入 输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息 ...

  5. 九度OJ 题目1203:IP地址

    /********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1203:IP地址 * 来源:http://ac. ...

  6. 九度oj 题目1516:调整数组顺序使奇数位于偶数前面

    题目1516:调整数组顺序使奇数位于偶数前面 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:3416 解决:1091 题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序, ...

  7. 九度oj 题目1411:转圈

    题目描述: 在一个有向图有n个顶点(编号从1到n),给一个起点s,问从起点出发,至少经过一条边,回到起点的最短距离. 输入: 输入包括多组,每组输入第一行包括三个整数n,m,s(1<=n< ...

  8. 【WA】九度OJ题目1435:迷瘴

    题目描述: 通过悬崖的yifenfei,又面临着幽谷的考验-- 幽谷周围瘴气弥漫,静的可怕,隐约可见地上堆满了骷髅.由于此处长年不见天日,导致空气中布满了毒素,一旦吸入体内,便会全身溃烂而死. 幸好y ...

  9. 九度oj 题目1354:和为S的连续正数序列

    题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久, ...

  10. 九度OJ—题目1032:ZOJ

    题目描写叙述: 读入一个字符串.字符串中包括ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出.当某个字符用完时,剩下的仍然依照ZOJ的顺序输出. 输入: 题目包括多组用例,每组用例占一行,包括ZOJ ...

最新文章

  1. python线下课程厦门_厦门python课程
  2. dp主机_HDMI和DP谁才是未来主流?
  3. linux的NetworkManager服务(转)
  4. 【我的物联网成长记3】如何开发物联网应用?
  5. 云计算教程学习入门视频课件:什么是中间件?
  6. dlp型3d打印机_创想三维一台3d打印机是多少钱
  7. Java异或性能测试速度为2.5GiB/s
  8. python库-collections模块Counter类
  9. 阿里云飞天系统质效管理体系入选信通院“软件质效领航者”优秀案例
  10. 重启电脑数据丢失怎么恢复?这篇指南很受用!
  11. 2017广东工业大学程序设计竞赛决赛 Problem H: tmk买礼物(数论)
  12. BUAAOJ989 御坂御坂 约瑟夫环
  13. 人造金刚石 量子计算机,金刚石并非坚不可摧:科研小组创造首个量子计算机桥...
  14. Polynomial类 多项式
  15. 老照片修复清晰有什么办法?教你修复老照片清晰度
  16. 【干货】Java实习面试经验汇总
  17. 智能android电视更换播放器,GitHub - kaigeLove/TvPlayer: android智能电视播放器,可以播放各电视台节目,播放基于ijkplayer的实现。...
  18. 下载 Eclipse 免安装版~
  19. 防封号电销系统哪里有?真的防封吗?
  20. Mac电脑无法将U盘格式化(抹除)为APFS格式的解决

热门文章

  1. Ps 初学者教程,如何使用色阶滴管工具校正色偏?
  2. 如何解决MacOS无法登录app store的问题?
  3. Parallels Desktop 16 升级 macOS Big Sur 无法联网解决方法
  4. WidsMob Viewer Pro Mac如何批量调整照片大小及格式
  5. 即刻起,加速您的前端构建
  6. 三数之和,去除重复。
  7. 由儿时的游戏打保猜最广想到的
  8. Python学习手册之类和继承
  9. 数据分析为何能指导商业决策?
  10. [LintCode] Swap Nodes in Pairs