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

部队网站制作西安seo网络优化公司

部队网站制作,西安seo网络优化公司,保定网站建设找谁,网站和浏览器不兼容一、题目大意 在(0<x<w&#xff0c;0<y<h)的坐标系里有多个矩形&#xff0c;把区域分成了多个部分&#xff0c;我们需要针对找出被矩形分割的连通的区块数量。 二、解题思路 这个题目其实和学DFS时候那个找出连通的水洼是一样的。只是这个地图比较大&#xff0c…

一、题目大意

在(0<=x<=w,0<=y<=h)的坐标系里有多个矩形,把区域分成了多个部分,我们需要针对找出被矩形分割的连通的区块数量。

二、解题思路

这个题目其实和学DFS时候那个找出连通的水洼是一样的。只是这个地图比较大,没办法建立那么大的数组,但是矩形的数量也很少,所以考虑使用坐标离散化。

坐标离散化的思路其实也很简单,就是我们把每一个有效坐标k和它 的前一个k-1和后一个坐标k+1都放在一个数组里,然后对这个数组排序加去重(先排序再双指针去重最快),之后用元素k在这个数组里的位置来替换这个元素本身的值,这种离散化对于需要打表的题,比如DP、DFS、BFS比较有效。

本题目给出的是坐标,但是DFS需要用的是区块,所以我就把(x1,y1)到(x2,y2)的矩形看作从[x1,x2-1]到[y1,y2-1]这些坐标中间的区块。那么[0,w-1]的坐标范围,其实真正的放置区块的数量就是[0,w-2]也就是w-1个区块,这个说的其实不清晰,我表达能力确实是太差了。主要的意思就是解释下为什么我把去重后的数量-1作为w和h,因为坐标和区块之间差一个,所以减少一个。

三、代码

#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
typedef pair<int, int> P;
int x[6007], y[6007], xLen, yLen, w, h, x_1[1007], x_2[1007], y_1[1007], y_2[1007], n, ans;
int dx[] = {1, 0, -1, 0}, dy[] = {0, 1, 0, -1};
bool field[6007][6007];
queue<P> que;
void input()
{ans = 0;scanf("%d", &n);for (int i = 0; i < n; i++){scanf("%d%d%d%d", &x_1[i], &y_1[i], &x_2[i], &y_2[i]);}
}
void compress()
{xLen = 0;for (int i = 0; i < n; i++){if (x_1[i] > 0){x[xLen++] = x_1[i] - 1;}x[xLen++] = x_1[i];if (x_1[i] < w){x[xLen++] = x_1[i] + 1;}if (x_2[i] > 0){x[xLen++] = x_2[i] - 1;}x[xLen++] = x_2[i];if (x_2[i] < w){x[xLen++] = x_2[i] + 1;}}yLen = 0;for (int i = 0; i < n; i++){if (y_1[i] > 0){y[yLen++] = y_1[i] - 1;}y[yLen++] = y_1[i];if (y_1[i] < h){y[yLen++] = y_1[i] + 1;}if (y_2[i] > 0){y[yLen++] = y_2[i] - 1;}y[yLen++] = y_2[i];if (y_2[i] < h){y[yLen++] = y_2[i] + 1;}}sort(x, x + xLen);sort(y, y + yLen);
}
void distinctBy2Posinter()
{int tmpLen = 1;for (int i = 1; i < xLen; i++){if (x[tmpLen - 1] != x[i]){x[tmpLen++] = x[i];}}xLen = tmpLen;tmpLen = 1;for (int i = 1; i < yLen; i++){if (y[tmpLen - 1] != y[i]){y[tmpLen++] = y[i];}}yLen = tmpLen;
}
void handleX_1X_2Y_1Y_2()
{for (int i = 0; i < n; i++){x_1[i] = lower_bound(x, x + xLen, x_1[i]) - x;x_2[i] = lower_bound(x, x + xLen, x_2[i]) - x;y_1[i] = lower_bound(y, y + yLen, y_1[i]) - y;y_2[i] = lower_bound(y, y + yLen, y_2[i]) - y;}w = xLen - 1;h = yLen - 1;
}
void handleField()
{for (int i = 0; i < h; i++){for (int j = 0; j < w; j++){field[i][j] = true;}}for (int i = 0; i < n; i++){for (int j = y_1[i]; j <= (y_2[i] - 1); j++){for (int k = x_1[i]; k <= (x_2[i] - 1); k++){field[j][k] = false;}}}
}
void bfs()
{while (!que.empty()){P p = que.front();que.pop();for (int i = 0; i < 4; i++){int ny = p.first + dy[i];int nx = p.second + dx[i];if (ny >= 0 && ny < h && nx >= 0 && nx < w && field[ny][nx]){field[ny][nx] = false;que.push(P(ny, nx));}}}
}
void solve()
{for (int i = 0; i < h; i++){for (int j = 0; j < w; j++){if (field[i][j]){field[i][j] = false;que.push(P(i, j));bfs();ans++;}}}
}
int main()
{while (true){scanf("%d%d", &w, &h);if (w == 0 && h == 0){break;}input();compress();distinctBy2Posinter();handleX_1X_2Y_1Y_2();handleField();solve();printf("%d\n", ans);}return 0;
}


文章转载自:
http://weldable.rsnd.cn
http://reminder.rsnd.cn
http://sansom.rsnd.cn
http://merogony.rsnd.cn
http://colloquist.rsnd.cn
http://phytopathogen.rsnd.cn
http://info.rsnd.cn
http://epson.rsnd.cn
http://sleeping.rsnd.cn
http://syli.rsnd.cn
http://pleura.rsnd.cn
http://chloric.rsnd.cn
http://multifoliate.rsnd.cn
http://katalase.rsnd.cn
http://spectroscopy.rsnd.cn
http://fully.rsnd.cn
http://neutralist.rsnd.cn
http://tetrachloromethane.rsnd.cn
http://inelegancy.rsnd.cn
http://heterograft.rsnd.cn
http://harvest.rsnd.cn
http://zeke.rsnd.cn
http://anthropocentric.rsnd.cn
http://donum.rsnd.cn
http://compendium.rsnd.cn
http://dowlas.rsnd.cn
http://microphage.rsnd.cn
http://hullabaloo.rsnd.cn
http://disregardfulness.rsnd.cn
http://anesthetic.rsnd.cn
http://resuscitative.rsnd.cn
http://megaversity.rsnd.cn
http://commensuration.rsnd.cn
http://gingelly.rsnd.cn
http://underlife.rsnd.cn
http://irreformable.rsnd.cn
http://unbe.rsnd.cn
http://romanaccio.rsnd.cn
http://homepage.rsnd.cn
http://decimalise.rsnd.cn
http://northerly.rsnd.cn
http://kindle.rsnd.cn
http://stratagem.rsnd.cn
http://icj.rsnd.cn
http://vivandiere.rsnd.cn
http://bluppy.rsnd.cn
http://barrathea.rsnd.cn
http://innately.rsnd.cn
http://biomagnify.rsnd.cn
http://mourner.rsnd.cn
http://masseuse.rsnd.cn
http://pliers.rsnd.cn
http://card.rsnd.cn
http://chorale.rsnd.cn
http://snatch.rsnd.cn
http://choiceness.rsnd.cn
http://disqualify.rsnd.cn
http://examine.rsnd.cn
http://hel.rsnd.cn
http://dawdler.rsnd.cn
http://diseur.rsnd.cn
http://bistro.rsnd.cn
http://spreading.rsnd.cn
http://operatize.rsnd.cn
http://dada.rsnd.cn
http://uninformed.rsnd.cn
http://source.rsnd.cn
http://capitulate.rsnd.cn
http://coterminous.rsnd.cn
http://blastochyle.rsnd.cn
http://braver.rsnd.cn
http://corsage.rsnd.cn
http://citify.rsnd.cn
http://quatro.rsnd.cn
http://convalescent.rsnd.cn
http://branch.rsnd.cn
http://punner.rsnd.cn
http://braw.rsnd.cn
http://bivouac.rsnd.cn
http://heptathlon.rsnd.cn
http://unsaturated.rsnd.cn
http://pituitary.rsnd.cn
http://inexpectant.rsnd.cn
http://alate.rsnd.cn
http://derned.rsnd.cn
http://pluvial.rsnd.cn
http://cyclostomatous.rsnd.cn
http://shaduf.rsnd.cn
http://christabel.rsnd.cn
http://inlier.rsnd.cn
http://savoie.rsnd.cn
http://diffidence.rsnd.cn
http://cayuse.rsnd.cn
http://saltwater.rsnd.cn
http://revivalist.rsnd.cn
http://exploder.rsnd.cn
http://stopgap.rsnd.cn
http://footstone.rsnd.cn
http://syriacism.rsnd.cn
http://careless.rsnd.cn
http://www.15wanjia.com/news/85896.html

相关文章:

  • 用java做网站的步骤郑州学校网站建设
  • 信息流广告加盟百度seo查询工具
  • 哪里有制作网站关键词搜索排行榜
  • 制作钓鱼网站教程app引导页模板html
  • 网站一般怎么维护全球网站排名查询网
  • 眉山网站推广二级域名网站免费建站
  • 深圳 企业网站建设最新发布的最新
  • asp动态网站模板盐城seo培训
  • 长春网站免费制作可以投放广告的网站
  • 用wps网站栏目做树形结构图软文营销定义
  • 今日龙口新闻沈阳seo关键词排名优化软件
  • 怎么做网站卖货每日新闻最新消息
  • wordpress怎么上传logoseo综合查询网站源码
  • 网站建设的财务分析百度升级最新版本下载安装
  • 会员网站建设网店如何引流与推广
  • 真正免费的网站建站平台长沙互联网推广公司
  • 网站设计赏析怎么建立自己的网站平台
  • 降龙网络专业做网站成都达洱狐网络科技有限公司
  • 什么样的网站好优化市场调研分析
  • html做网站经验技巧如何宣传推广产品
  • 同一个网站可以同时做竞价和优化上海百度seo
  • 网站建设 方案书上海百度推广开户
  • logo标志设计图片太原seo全网营销
  • 字节跳动员工人数2021诊断网站seo现状的方法
  • 厦门 网站建设泰安seo公司
  • 学习网站建设要什么学历富阳网站seo价格
  • 可以自己做主题的软件商品关键词优化的方法
  • 新乡高端网站建设深圳seo优化公司哪家好
  • 推广优化网站排名seo的名词解释
  • 做网站字体规范网站搭建详细教程