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

asp做网站教程网站服务器如何选择

asp做网站教程,网站服务器如何选择,wordpress搬家到本地,10元备案域名购买连通块记忆性递归的综合运用 这里x#xff0c;y的设置反我平常的习惯#xff0c;搞得我有点晕 实际上可以一输入就交换x#xff0c;y的数据的 如果设置y1为全局变量的话会warning#xff1a; warning: built-in function y1 declared as non-function 所以我改成p和q了… 连通块记忆性递归的综合运用 这里xy的设置反我平常的习惯搞得我有点晕 实际上可以一输入就交换xy的数据的 如果设置y1为全局变量的话会warning warning: built-in function y1 declared as non-function 所以我改成p和q了 刚开始判断能不能相连是靠连通块 后面求最短线段数是靠记忆性递归 代码如下 #includestdio.h struct Min{int x_d;//x轴的方向int y_d;//y轴的方向int len; }min[77][77]; void fill(int color, int x, int y); bool judge(int m1, int n1, int m2, int n2); void dg(int y, int x, int color, int y_d, int x_d); int map[77][77]; int w, h, p1, q1, p2, q2;int main(void) {//板子输入scanf(%d%d, w, h);getchar();for(int i 1; i h; i){char c;for(int j 1; j w; j)if((c getchar()) X)map[i][j] 1;elsemap[i][j] 0;getchar();}//开始填充连通块int color 2;fill(color, 0, 0);for(int i 1; i h; i)for(int j 1; j w; j)if(map[i][j] 0)fill(color, i, j);//开始判断并计算int n;scanf(%d, n);for(int i 0; i n; i){scanf(%d%d%d%d, p1, q1, p2, q2);if(judge(p1, q1, p2, q2)){printf(impossible\n);continue;}//重置min数组for(int i 0; i h 1; i)for(int j 0; j w 1; j)min[i][j].len 100, min[i][j].x_d 0, min[i][j].y_d 0;min[q1][p1].len 0;//求最短线段数从x1y1到x2y2if(map[q1 1][p1] ! 1) dg(q1 1, p1, map[q1 1][p1], 1, 0);if(map[q1 - 1][p1] ! 1) dg(q1 - 1, p1, map[q1 - 1][p1], -1, 0);if(map[q1][p1 1] ! 1) dg(q1, p1 1, map[q1][p1 1], 0, 1);if(map[q1][p1 - 1] ! 1) dg(q1, p1 - 1, map[q1][p1 - 1], 0, -1);//得到最短线段数int minn 100;if(map[q2 1][p2] ! 1){int tmp min[q2 1][p2].len ((min[q2 1][p2].x_d 0 min[q2 1][p2].y_d -1) ? 0 : 1);minn (minn tmp) ? minn : tmp;}if(map[q2 - 1][p2] ! 1){int tmp min[q2 - 1][p2].len ((min[q2 - 1][p2].x_d 0 min[q2 - 1][p2].y_d 1) ? 0 : 1);minn (minn tmp) ? minn : tmp;}if(map[q2][p2 1] ! 1){int tmp min[q2][p2 1].len ((min[q2][p2 1].x_d -1 min[q2][p2 1].y_d 0) ? 0 : 1);minn (minn tmp) ? minn : tmp;}if(map[q2][p2 - 1] ! 1){int tmp min[q2][p2 - 1].len ((min[q2][p2 - 1].x_d 1 min[q2][p2 - 1].y_d 0) ? 0 : 1);minn (minn tmp) ? minn : tmp;}//输出if(minn 10) printf(impossible\n);else printf(%d\n, minn);}return 0; } void fill(int color, int x, int y) {if(map[x][y]) return;if(x 0 || y 0 || x h 1 || y w 1) return;map[x][y] color;fill(color, x 1, y), fill(color, x - 1, y);fill(color, x, y 1), fill(color, x, y - 1);return; } bool judge(int m1, int n1, int m2, int n2) {int tmp1[4] {map[n1 1][m1], map[n1 - 1][m1], map[n1][m1 1], map[n1][m1 - 1]};int tmp2[4] {map[n2 1][m2], map[n2 - 1][m2], map[n2][m2 1], map[n2][m2 - 1]};for(int i 0; i 4; i){if(tmp1[i] 1) continue;for(int j 0; j 4; j){if(tmp2[j] 1) continue;if(tmp1[i] tmp2[j]) return false;}}return true;//只是代表是否执行if而不是能不能连通 } void dg(int y, int x, int color, int y_d, int x_d) {if(x 0 || y 0 || x w 1 || y h 1) return;if(map[y][x] ! color) return;int tmp min[y - y_d][x - x_d].len ((x_d min[y - y_d][x - x_d].x_d y_d min[y - y_d][x - x_d].y_d) ? 0 : 1);if(tmp min[y][x].len) return;//等于的话不用返回min[y][x].len tmp, min[y][x].x_d x_d, min[y][x].y_d y_d;dg(y 1, x, color, 1, 0);dg(y - 1, x, color, -1, 0);dg(y, x 1, color, 0, 1);dg(y, x - 1, color, 0, -1);return; } 这里实际上可以改一下目的地的color本来是1使旁边的块可以直接走到目的地而不是目的地旁边 只要在4个方向的递归开始的时候改成相应的颜色就可以了记得改回来以后还要用 这样就不会显得累赘可以把求最短线段数部分和得到最短线段数部分合并代码会更短一点 懒得改了
http://www.zqtcl.cn/news/487378/

相关文章:

  • 深圳建网站价格防水堵漏公司做网站效果怎样
  • 网站建设东莞老铁博客外国炫酷网站网址
  • 笔杆子写作网站牡丹江信息网0453免费发布信息
  • 网站建设介绍推广用语解释seo网站推广
  • 加盟企业网站建设目的速卖通下载app
  • 阳江北京网站建设网页设计与网站建设pdf
  • 做考试平台的网站网站之前没备案
  • 网站维护要多久时间北京网站优化哪家好
  • 单页推广网站模版网站建设一个购买链接
  • 湖南门户网站设计公司免费自媒体网站
  • 美食网站建设项目预算域名解析站长工具
  • 网站如何备案工信局学网站开发首先学哪些基础
  • 什么网站利于优化河北省建设局网站材料备案
  • 自学装修设计从哪里入手沈阳百度seo
  • 做jsp网站用哪些软件下载如何利用网站赚钱
  • 注册网站域名需要什么湘潭公司做网站
  • 一个网站如何优化企业资质查询平台
  • 模板网站为什么做不了优化山西网络网站建设销售公司
  • 建设什么网站可以赚钱设计本网站是用什么做的
  • 荆州市网站建设策划师
  • 苏州中国建设银行招聘信息网站中国企业登记网
  • 网站服务器的重要性新闻软文范例大全
  • 茶叶网站建设一般的风格加大志愿服务网站建设
  • 湖州医院网站建设方案网页游戏知乎
  • 以网站建设为开题报告临海门户网站住房和城乡建设规划局
  • 河南省大型项目建设办公室网站wordpress置顶功能
  • 奉化网站建设三合一网站建设多少钱
  • wordpress文章页怎么调用网站图片wordpress菜单锚点定位
  • 网站建设运营合作合同网站建设英文合同
  • wordpress chrome插件开发图片式网站利于做优化吗