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

盐城快速建设网站公司wordpress托管服务器

盐城快速建设网站公司,wordpress托管服务器,移动互联网开发课件,在手机上可以做网页吗达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。 翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障,导致无法启动。电路板的整体结构是一个 R 行 C 列的网格&#…

达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。

翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障,导致无法启动。电路板的整体结构是一个 R 行 C 列的网格(R,C≤500),如下图所示。

每个格点都是电线的接点,每个格子都包含一个电子元件。电子元件的主要部分是一个可旋转的、连接一条对角线上的两个接点的短电缆。在旋转之后,它就可以连接另一条对角线的两个接点。电路板左上角的接点接入直流电源,右下角的接点接入飞行车的发动装置。

达达发现因为某些元件的方向不小心发生了改变,电路板可能处于断路的状态。她准备通过计算,旋转最少数量的元件,使电源与发动装置通过若干条短缆相连。不过,电路的规模实在是太大了,达达并不擅长编程,希望你能够帮她解决这个问题。

注意:只能走斜向的线段,水平和竖直线段不能走。

输入格式
输入文件包含多组测试数据。
第一行包含一个整数 T,表示测试数据的数目。
对于每组测试数据,第一行包含正整数 R 和 C,表示电路板的行数和列数。
之后 R 行,每行 C 个字符,字符是"/"和"\"中的一个,表示标准件的方向。

输出格式
对于每组测试数据,在单独的一行输出一个正整数,表示所需的最小旋转次数。
如果无论怎样都不能使得电源和发动机之间连通,输出 NO SOLUTION。

数据范围
1≤R,C≤500,1≤T≤5

输入样例:

1
3 5
\\/\\
\\///
/\\\\
输出样例:
1

样例解释
样例的输入对应于题目描述中的情况。
只需要按照下面的方式旋转标准件,就可以使得电源和发动机之间连通。

解析:

从(0,0) 走到 (n,m)的过程中,能走的边权为0,需要旋转的边权为1。

旋转最少数量的元件也就是从(0,0) 走到 (n,m)的最短距离。

这道题用的是双端队列BFS也可以说是特殊的 Dijkstra.

注意:对于每个点,它要走的下一个点只能是坐标和为偶数的点,也就是左上、右上、右下、左下。

#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef pair<int,int> PII;
const int N=2e6+10;
deque <PII> q;
char g[510][510];
bool vis[510][510];
int d[510][510];
int n,m;
int dx[4]={-1,-1,1,1};    //该点下步的点(起点是(0,0),之后走的点就是坐标和为偶数的点),即左上、右上、右下、左下    
int dy[4]={-1,1,1,-1};int ix[4]={-1,-1,0,0};    //该点下步的点的状态
int iy[4]={-1,0,0,-1};char c[5]="\\/\\/";      //该点下步的点的理想状态 (若权值为0的状态)
void bfs()
{memset(vis,0,sizeof vis);memset(d,0x3f,sizeof d);q.push_back({0,0});d[0][0]=0;while (q.size()){int x=q.front().first;int y=q.front().second;q.pop_front();if (vis[x][y]) continue;vis[x][y]=1;for (int i=0;i<4;i++){int a=x+dx[i],b=y+dy[i];if (a>=0&&a<=n&&b>=0&&b<=m){int ga=x+ix[i],gb=y+iy[i];int w=(g[ga][gb]!=c[i]);if (d[x][y]+w<=d[a][b]){d[a][b]=d[x][y]+w;if (w) q.push_back({a,b});else q.push_front({a,b});}}}}
}
signed main()
{ios;int t;cin>>t;while (t--){cin>>n>>m;for (int i=0;i<n;i++)for (int j=0;j<m;j++)cin>>g[i][j];if ((n+m)%2!=0) cout<<"NO SOLUTION\n"; //(n+m)如果是奇数,就走不到该点,即无解else {bfs();cout<<d[n][m]<<endl;}}return 0;
}

http://www.yayakq.cn/news/44446/

相关文章:

  • 昆明制作企业网站的公司58招聘运营网站怎么做
  • 建设银行网站用户名邢台太行中学初中部
  • 世界上有php应用的网站网站移动端做pc端的301跳转
  • 在家做网站维护兼职网络系统管理技能大赛考什么
  • wap手机网站建设开发一个软件能赚多少钱
  • 南阳企业网站seo公司大全免费查询
  • 网站拥有者查询深圳网站制作公司 讯
  • 相册管理网站模板下载失败wordpress登陆卡
  • 如何做网站管理维护昆明seo博客
  • 企业电子商务网站开发数据库设计怎样是做网站
  • 建筑公司网站建设wordpress 插件经验
  • 深圳网站设计+建设首选wordpress 仿站小工具
  • 用html做一号店网站怎么做苏州网站排名优化系统
  • 天津高端网站制作个人网站建设费用
  • 佛山专业做网站深圳市手机网站建设品牌
  • 虎丘苏州网站建设如何宣传推广
  • 网站生成手机网站wordpress页面编辑器
  • 外贸 企业网站 建设广告设计与制作包括哪些
  • 广州网站优化价格制作介绍的网站模板
  • 网站建设发布实训总结wordpress网站源代码
  • 如何再腾讯云服务器做网站没有办公地点怎么注册自己的公司
  • 云虚拟机可以做几个网站网页设计培训包就业
  • 设计案例网站阿里云搭建安装wordpress教程
  • 微信网站用什么软件做wordpress站点logo多大合适
  • 英雄联盟网站模板盐山网站建设
  • 免费网站站长查询网站系统代码怎么用
  • 国家建设环保局网站机械网站推广怎么做
  • 上海网站设计推荐刻.net 网站优化
  • 做网站如何企业网站建设可行性分析 技能训练
  • 网站打不开用什么浏览器视频直播网站怎么做