当前位置: 首页 > news >正文

聊城做网站做的不错的网络公司/代发关键词排名包收录

聊城做网站做的不错的网络公司,代发关键词排名包收录,乐清网站改版,查公司的软件叫什么题目大意: 分析: 预处理出每个面的相对面,以及四个方向走的时候面的位置的变化情况 设dpi,j,k,l,mdp_{i,j,k,l,m}dpi,j,k,l,m​表示到了位置(i,j)(i,j)(i,j),上面是kkk,前面是lll,右边是mmm时的最小总和 然…

题目大意:

在这里插入图片描述
在这里插入图片描述

分析:

预处理出每个面的相对面,以及四个方向走的时候面的位置的变化情况
dpi,j,k,l,mdp_{i,j,k,l,m}dpi,j,k,l,m表示到了位置(i,j)(i,j)(i,j),上面是kkk,前面是lll,右边是mmm时的最小总和
然后用spfa更新即可

最初的骰子的前后上右下左分别对应1,2,3,4,5,6
k,l,m∈k,l,m∈k,l,m{1,2,3,4,5,61,2,3,4,5,61,2,3,4,5,6},即当前筛子的面是最初骰子的哪个面

代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <queue>
#include <cstring>
#include <algorithm>#define inf 0x3f3f3f3f
#define N 10using namespace std;const int dx[4] = {-1, 1, 0, 0};
const int dy[4] = {0, 0, -1, 1};
int Pre[5][7], dp[N][N][7][7][7], cost[N], a[7], b[7], ax, ay, bx, by;
char a1[5], a2[5];
bool vis[N][N][7][7][7];queue <int> px, py, g1, g2, g3;int Get_num(int x)
{if (x == 1) return 2;if (x == 2) return 1;if (x == 3) return 5;if (x == 5) return 3;if (x == 4) return 6;if (x == 6) return 4;
}bool check(int xx, int yy)
{if (xx < 1 || xx > 8 || yy < 1 || yy > 8) return 0;return 1; 
}void spfa()
{// 前后上右下左 for (int i = 1; i <= 8; i++)for (int j = 1; j <= 8; j++) for (int k = 1; k <= 6; k++)for (int l = 1; l <= 6; l++)  for (int z = 1; z <= 6; z++) dp[i][j][k][l][z] = inf;dp[ax][ay][3][1][4] = cost[5]; //12 35 46 走到(i,j)上面是k,前面是l 右边是z vis[ax][ay][3][1][4] = 1;px.push(ax); py.push(ay); g1.push(3); g2.push(1); g3.push(4);while (px.size()){int ux = px.front(); px.pop();int uy = py.front(); py.pop();int u1 = g1.front(); g1.pop();int u2 = g2.front(); g2.pop();int u3 = g3.front(); g3.pop();a[1] = u2, a[2] = Get_num(u2);a[3] = u1, a[5] = Get_num(u1);a[4] = u3, a[6] = Get_num(u3);for (int i = 0; i < 4; i++){int vx = ux + dx[i];int vy = uy + dy[i];for (int j = 1; j <= 6; j++) b[Pre[i][j]] = a[j];if (check(vx, vy)){if (dp[ux][uy][u1][u2][u3] + cost[a[Pre[i][0]]] < dp[vx][vy][b[3]][b[1]][b[4]]){dp[vx][vy][b[3]][b[1]][b[4]] = dp[ux][uy][u1][u2][u3] + cost[a[Pre[i][0]]];if (!vis[vx][vy][b[3]][b[1]][b[4]]){vis[vx][vy][b[3]][b[1]][b[4]] = 1;px.push(vx); py.push(vy);g1.push(b[3]); g2.push(b[1]); g3.push(b[4]); } }}}vis[ux][uy][u1][u2][u3] = 0;} 
}void Pre_Work()
{// 前后上右下左 Pre[0][1] = 5, Pre[0][2] = 3, Pre[0][3] = 1, Pre[0][4] = 4, Pre[0][5] = 2, Pre[0][6] = 6, Pre[0][0] = 1; //上 Pre[1][1] = 3, Pre[1][2] = 5, Pre[1][3] = 2, Pre[1][4] = 4, Pre[1][5] = 1, Pre[0][6] = 6, Pre[1][0] = 2; //下Pre[2][1] = 1, Pre[2][2] = 2, Pre[2][3] = 6, Pre[2][4] = 3, Pre[2][5] = 4, Pre[2][6] = 5, Pre[2][0] = 6; //左Pre[3][1] = 1, Pre[3][2] = 2, Pre[3][3] = 4, Pre[3][4] = 5, Pre[3][5] = 6, Pre[3][6] = 3, Pre[3][0] = 4; //右 
}int main()
{ Pre_Work();scanf("%s %s", a1, a2);for (int i = 1; i <= 6; i++) scanf("%d", &cost[i]); ay = a1[0] - 'a' + 1, ax = a1[1] - '0';by = a2[0] - 'a' + 1, bx = a2[1] - '0';spfa();int ans = inf;for (int i = 1; i <= 6; i++) for (int j = 1; j <= 6; j++) for (int k = 1; k <= 6; k++) ans = min(ans, dp[bx][by][i][j][k]); printf("%d\n", ans); 	
}
http://www.jmfq.cn/news/5072635.html

相关文章:

  • 网络营销网站建设存在问题/重庆网站建设维护
  • 深圳企业网站建设公司哪家好/seo建站收费地震
  • 注册商标流程/google seo怎么优化
  • 做培训网站前端/网站关键词优化价格
  • 如何用模板做公司网站/最佳磁力吧ciliba磁力链
  • 网站建设公司小程序/谷歌商店安卓版下载
  • 博彩游戏网站开发设计菲律宾/国际时事新闻最新消息
  • 灵宝网站建设/网站关键词排名服务
  • 个人网站模板 php/优化营商环境 提升服务效能
  • 网站开发报价清单/seo外链工具下载
  • 网站制作致谢词/百度纯净版首页入口
  • wordpress影院插件/网站推广专家十年乐云seo
  • 秦皇岛建设局官方网站/网络营销师证书含金量
  • 局域网中怎么访问自己做的网站/宁波seo网络推广渠道介绍
  • 贵州省建设厅官网站首页/前端培训
  • 长春优惠做网站/seo搜索
  • 设计类网站app/网页版百度
  • 成都网站制作系统/手机百度助手
  • 界面设计心得/青岛网站优化
  • 公众号做视频网站吗/社群营销方案
  • 网站开发运营成本/seo上首页排名
  • 北京网站建设哪家最好/免费推客推广平台
  • 郑州网站建设推广优化/苏州百度推广代理商
  • 东方城乡与住房建设部网站/百度指数官网登录
  • 我想来做外贸网站来推广/品牌营销方案
  • 营销网站建设定制/网页制作接单平台
  • 网站开发常用工具/外贸营销系统
  • 硬件开发前景/seo助理
  • No物流网站建设/最近三天发生的重要新闻
  • 对网页美工的认识/seo优化操作