九度OJ(1091)棋盘游戏
2013-10-09 00:01
211 查看
题目1091:棋盘游戏
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:622
解决:155
题目描述:
有一个6*6的棋盘,每个棋盘上都有一个数值,现在又一个起始位置和终止位置,请找出一个从起始位置到终止位置代价最小的路径:
1、只能沿上下左右四个方向移动
2、总代价是没走一步的代价之和
3、每步(从a,b到c,d)的代价是c,d上的值与其在a,b上的状态的乘积
4、初始状态为1
每走一步,状态按如下公式变化:(走这步的代价%4)+1。
输入:
第一行有一个正整数n,表示有n组数据。
每组数据一开始为6*6的矩阵,矩阵的值为大于等于1小于等于10的值,然后四个整数表示起始坐标和终止坐标。
输出:
输出最小代价。
样例输入:11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 10 0 5 5
样例输出:23
这个题目本身并不难,主要是因为这是在九度上面A的第一个四星题目,所以拿出来share一下,很简单,DFS和BFS都能做,我用DFS一遍过了,下面是代码:
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:622
解决:155
题目描述:
有一个6*6的棋盘,每个棋盘上都有一个数值,现在又一个起始位置和终止位置,请找出一个从起始位置到终止位置代价最小的路径:
1、只能沿上下左右四个方向移动
2、总代价是没走一步的代价之和
3、每步(从a,b到c,d)的代价是c,d上的值与其在a,b上的状态的乘积
4、初始状态为1
每走一步,状态按如下公式变化:(走这步的代价%4)+1。
输入:
第一行有一个正整数n,表示有n组数据。
每组数据一开始为6*6的矩阵,矩阵的值为大于等于1小于等于10的值,然后四个整数表示起始坐标和终止坐标。
输出:
输出最小代价。
样例输入:11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 10 0 5 5
样例输出:23
这个题目本身并不难,主要是因为这是在九度上面A的第一个四星题目,所以拿出来share一下,很简单,DFS和BFS都能做,我用DFS一遍过了,下面是代码:
#include <iostream> #include <vector> #include <queue> #include <functional> #include <cstdlib> using namespace std; int sx,sy,ex,ey,ans;//起始点,终点坐标; queue<int>q; int dir[][2]={{-1,0},{1,0},{0,1},{0,-1}}; int visit[6][6]; int map[6][6]; void DFS(int x,int y,int sum,int statu) { if(sum<ans) { if(x==ex&&y==ey) { ans=sum; return ; } for(int i=0;i<4;i++) { int nextx=x+dir[i][0]; int nexty=y+dir[i][1]; if(visit[nextx][nexty]&&nextx>=0&&nextx<6&&nexty>=0&&nexty<6) { int cost=statu*map[nextx][nexty]; visit[nextx][nexty]=0; DFS(nextx,nexty,sum+cost,cost%4+1); visit[nextx][nexty]=1; } } } } int main() { int k; cin>>k; while(k--) { for(int i=0;i<6;i++) { for(int j=0;j<6;j++) { cin>>map[i][j]; visit[i][j]=1; } } cin>>sx>>sy>>ex>>ey; ans=1000000; DFS(sx,sy,0,1); cout<<ans<<endl; } return 0; }
相关文章推荐
- DFS和BFS 解棋盘游戏(九度OJ 1091)
- 九度 oj 题目1091:棋盘游戏
- 九度OJ 1091棋盘游戏
- 九度OJ 1091 棋盘游戏
- 九度OJ 1091 棋盘游戏
- OJ_1091 棋盘游戏
- 九度OJ 1356:孩子们的游戏(圆圈中最后剩下的数) (约瑟夫环)
- 题目1091:棋盘游戏(DFS)
- zzuoj1225 棋盘游戏 最简单的博弈——巴什博弈(bash game)
- 题目1091:棋盘游戏
- 九度OJ 1091:棋盘游戏 (DP、BFS、DFS、剪枝)
- 九度OJ 1091:棋盘游戏 (DP、BFS、DFS、剪枝)
- 九度OJ 1146:Flipping Pancake(翻饼子) (递归、游戏)
- 九度OJ 1146:Flipping Pancake(翻饼子) (递归、游戏)
- 九度OJ--题目1091:棋盘游戏
- 九度OJ 1147:Jugs(罐子) (模拟、游戏)
- 九度OJ 1147:Jugs(罐子) (模拟、游戏)
- 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划(01背包)
- 题目1091:棋盘游戏 -- DFS BFS
- 九度OJ-题目1356:孩子们的游戏(圆圈中最后剩下的数)