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

免费学习资源网站网站连接微信

免费学习资源网站,网站连接微信,网站公司排行榜,网站备案查询工信部app题目描述 X星的坦克战车很奇怪#xff0c;它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转#xff0c;否则将报废。 某坦克需要从A区到B区去#xff08;A#xff0c;B区本身是安全区#xff0c;没有正能量或负能量特征#xff09;#xff0c;怎样走才能路径…题目描述 X星的坦克战车很奇怪它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转否则将报废。 某坦克需要从A区到B区去AB区本身是安全区没有正能量或负能量特征怎样走才能路径最短 已知的地图是一个方阵上面用字母标出了AB区其它区都标了正号或负号分别表示正负能量辐射区。 例如 A - - - - - - -- - B - -坦克车只能水平或垂直方向上移动到相邻的区。 输入 输入第一行是一个整数n表示方阵的大小 4n100 接下来是n行每行有n个数据可能是AB-中的某一个中间用空格分开。 输入保证AB都只出现一次。 输出 要求输出一个整数表示坦克从A区到B区的最少移动步数。 如果没有方案则输出-1 样例输入 5 A - - - - - - -- - B - -样例输出 10知识点 gets()和scanf()的区别在于输入的字符串是否中间有空格对于前者只有遇到\n时才停止输入而对于后者出现\n或空格都停止输入。 AC代码如下 #include iostream #include cstring #include queue using namespace std; const int N 110; typedef pairint, intPII; #define x first #define y second char g[N][N]; int dis[N][N]; bool st[N][N]; int n;int dx[] {0, 0, 1, -1}, dy[] {1, -1, 0, 0};int bfs(PII start, PII end) {queuePIIq;q.push(start);dis[start.x][start.y] 0;st[start.x][start.y] true;while (q.size()) {PII t q.front();q.pop();for (int i 0; i 4; i) {int xx t.x dx[i], yy t.y dy[i];if (xx 0 || xx n || yy 0 || yy n)continue;if (st[xx][yy])continue;if (g[xx][yy] g[t.x][t.y])continue;st[xx][yy] true;dis[xx][yy] dis[t.x][t.y] 1;if (end make_pair(xx, yy))return dis[xx][yy];q.push({xx, yy});}}return -1; }int main() {cin n;PII start, end;memset(dis, -1, sizeof(dis));for (int i 0; i n; i) {for (int j 0; j n; j) {cin g[i][j];//因为cin输入遇到空格会停下所以用二重循环来读入if (g[i][j] A)start {i, j};else if (g[i][j] B)end {i, j};}}int distance bfs(start, end);if (distance -1)cout -1 endl;elsecout distance endl;return 0;}错误代码如下 #include iostream #include cstring #include queue using namespace std; const int N 110; typedef pairint, intPII; #define x first #define y second char g[N][N]; int dis[N][N]; bool st[N][N]; int n;int dx[] {0, 0, 1, -1}, dy[] {1, -1, 0, 0};int bfs(PII start, PII end) {queuePIIq;q.push(start);dis[start.x][start.y] 0;st[start.x][start.y] true;while (q.size()) {PII t q.front();q.pop();for (int i 0; i 4; i) {int xx t.x dx[i], yy t.y dy[i];if (xx 0 || xx n || yy 0 || yy n)continue;if (st[xx][yy])continue;if (g[xx][yy] g[t.x][t.y])continue;st[xx][yy] true;dis[xx][yy] dis[t.x][t.y] 1;if (end make_pair(xx, yy))return dis[xx][yy];q.push({xx, yy});}}return -1; }int main() {cin n;PII start, end;memset(dis, -1, sizeof(dis));for (int i 0;in;i){ // scanf(%s,g[i]);cing[i];//这两种输入写法都会遇到空格就停下来for (int j 0;jn;j){if (g[i][j]A) start {i,j};else if (g[i][j]B) end {i,j};}}int distance bfs(start, end);if (distance -1)cout -1 endl;elsecout distance endl;return 0;}AC代码如下 #include iostream #include queue using namespace std; const int N 110; bool vis[N][N]; char g[N][N];struct node {int x,y;int p; };int n;int dx[] {0,0,1,-1},dy[] {1,-1,0,0};int bfs(node s,node e) {queuenodeq;q.push(s);vis[s.x][s.y] true;while(q.size()){node t q.front();q.pop();if (t.x e.x t.ye.y){return t.p;}for (int i 0;i4;i){int xx t.xdx[i],yy t.ydy[i];if (xx 0 || xx n || yy 0 || yy n || vis[xx][yy]) continue;if (g[xx][yy]g[t.x][t.y]) continue;vis[xx][yy] true;node n;n {xx,yy,t.p1};q.push(n);}}return -1; }int main() {cinn;node s,e;for (int i 0;in;i)for (int j 0;jn;j)cing[i][j];for (int i 0;in;i)for (int j 0;jn;j){if (g[i][j]A)s {i,j,0};if (g[i][j]B)e {i,j,0};}coutbfs(s,e)endl;return 0; }错误代码如下: 下面这个代码为什么不行呢因为int n两次了一次在main函数外一次在main函数里面有时候写代码快的时候容易发生这样的错误还比较难找到。 #include iostream #include queue using namespace std; const int N 110; bool vis[N][N]; char g[N][N];struct node {int x,y;int p; };int n; int dx[] {0,0,1,-1},dy[] {1,-1,0,0};int bfs(node s,node e) {queuenodeq;q.push(s);vis[s.x][s.y] true;while(q.size()){node t q.front();q.pop();if (t.x e.x t.ye.y){return t.p;}for (int i 0;i4;i){int xx t.xdx[i],yy t.ydy[i];if (xx 0 || xx n || yy 0 || yy n || vis[xx][yy]) continue;if (g[xx][yy]g[t.x][t.y]) continue;vis[xx][yy] true;node n;n {xx,yy,t.p1};q.push(n);}}return -1; }int main() {int n;cinn;node s,e;for (int i 0;in;i)for (int j 0;jn;j)cing[i][j];for (int i 0;in;i)for (int j 0;jn;j){if (g[i][j]A)s {i,j,0};if (g[i][j]B)e {i,j,0};}coutbfs(s,e)endl;return 0; }
http://www.yutouwan.com/news/355908/

相关文章:

  • 门户网站怎么建设需要多长时间wordpress 主题 api
  • 国外公司做中国网站网站色彩学
  • 网站建设论文html格式烟台网站建设力推企汇互联见效付款
  • 域名注册好了如何做网站有哪些网站是可以做宣传的
  • 网站开发需要用到的相关技术衣服网站建设方案书
  • 动易网络 官方网站营销的方法手段有哪些
  • 北京html5网站建设动漫制作专业专科
  • 网站设计连接数据库怎么做垦利网站设计
  • 网站制作工具商城网站多少钱做
  • 网站设计的逻辑结构医疗网站几个人做竞价
  • 赤坎手机网站建设公司上海 网站建
  • 做企业展示网站需要多少钱深圳找工作哪个网站好
  • 镇江市建设招标网官方网站网站设计专业建站公司
  • 塘沽网站建设优化网站空间模板
  • 网站结构怎么优化网站建设分辨率
  • 聊城哪里可以学网站建设呢上海网站建设流程
  • 网站设计分析怎么写网站运营与管理实验报告
  • 免费网站设计培训班wordpress 改模板目录
  • 建设商城网站费用设计公司职位
  • 怎样利用网站做引流青岛专业网站建设公司排名
  • 长春专业网站建设公司排名WordPress插件Discuz
  • 昭通昭阳区城乡建设管理局网站代理服务器地址怎么找
  • 马鞍山网站设计制作怎么做便民信息网站
  • 南山-网站建设信科网络wordpress video plugin
  • 在ppt里面做网站链接wordpress如何设置边栏
  • 施工程找工程做哪个网站好网站首页弹出公告模板
  • 传统文化网站设计天津品牌网站制作
  • 一个人是否可以做公司网站申请域名邮箱
  • 石家庄网站建设公司哪个好电子商务网站的建设与流程
  • 房山网站建设优化seo网站建设团队分工