本文共 1356 字,大约阅读时间需要 4 分钟。
5159 | 24.66% | 1357 | 70.23% |
题目类型: 搜索
样例输入:
30 15...........................................................................*.................*****......****...............*X***.....**X***..............*****....***X**...............***X*.....****................*****.......*....................................................***........******............**X****.....*X**X*...........*******......******..........****X**.......*X**X*.............***........******...................................0 0
样例输出:
Throw 11 2 2 4
分析:
这道题可以说是的加强版, 先搜出骰子的区域范围,然后再在骰子区域范围里面再搜索出里面有相连的点数数量。
这样的话,可以采用嵌套搜索的方法得解。 这里用DFS,BFS都可以。
代码:
#include#include #include #include #include using namespace std;char map[60][60];int vis[60][60];int dir[4][2] = { {1,0},{-1,0},{0,1},{0,-1}};int w,h,dieNum, dotNum;struct Node{int x,y; };Node que[100000];// 这个搜索用来统计骰子中的相连的点数个数// 深搜和广搜都可以void bfs(int x, int y){ int front=0, rear=1; que[0].x = x, que[0].y = y; while(front < rear){ Node t = que[front++]; for(int i=0; i<4; ++i){ int dx=t.x+dir[i][0], dy=t.y+dir[i][1]; if(map[dx][dy]=='*' || map[dx][dy]=='.') continue; if(dx>=0 && dx =0 && dy =0 && dx =0 && dy
转载地址:http://uyzni.baihongyu.com/