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

兰州市城乡建设局网站官网找关键词的三种方法

兰州市城乡建设局网站官网,找关键词的三种方法,wordpress翻译过时了,手机可以做3d动漫视频网站有哪些题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id1104 思路 第一眼看上去是搜索? 这道题正解是带标记并查集,考虑一个城市的洪水能被抽走的情况,那样这个城市到出水口的高度都要小于城市的高度。并且,建立抽水机的区域…

题目链接

https://www.lydsy.com/JudgeOnline/problem.php?id=1104

思路

第一眼看上去是搜索?

这道题正解是带标记并查集,考虑一个城市的洪水能被抽走的情况,那样这个城市到出水口的高度都要小于城市的高度。并且,建立抽水机的区域一定是高度越小越好。

这样,对每个点和每个城市点分别排序后,枚举每个城市,将所有 相邻且高度均小于当前城市 的区域对 在并查集中合并,最后如果当前城市没有标记,说明需要在当前城市建立一个抽水机。

代码

#include <cstdio>
#include <cmath>
#include <algorithm>const int maxn=1000;
const int dx[]={1,0,-1,0};
const int dy[]={0,1,0,-1};int n,m,h[maxn+10][maxn+10],cnt,ans;struct point
{int x,y;bool operator <(const point &other) const{return abs(h[x][y])<abs(h[other.x][other.y]);}
};point city[maxn*maxn+10],full[maxn*maxn+10];namespace dsu
{int fa[maxn*maxn+10],mark[maxn*maxn+10];int find(int x){return fa[x]?(fa[x]=find(fa[x])):x;}inline int merge(int x,int y){x=find(x);y=find(y);if(x==y){return 0;}fa[x]=y;if(mark[x]){mark[y]=1;}return 0;}
}inline int trans(int x,int y)
{return (x-1)*m+y;
}int main()
{scanf("%d%d",&n,&m);for(register int i=1; i<=n; ++i){for(register int j=1; j<=m; ++j){scanf("%d",&h[i][j]);if(h[i][j]>0){city[++cnt].x=i;city[cnt].y=j;}full[trans(i,j)].x=i;full[trans(i,j)].y=j;}}std::sort(city+1,city+cnt+1);std::sort(full+1,full+n*m+1);int now=1;for(register int i=1; i<=cnt; ++i){int xx=city[i].x,yy=city[i].y;while((now<=n*m)&&(abs(h[full[now].x][full[now].y])<=abs(h[xx][yy]))){int x=full[now].x,y=full[now].y;for(register int j=0; j<4; ++j){int nx=x+dx[j],ny=y+dy[j];if((nx<=0)||(nx>n)||(ny<=0)||(ny>m)){continue;}if(abs(h[nx][ny])<=abs(h[xx][yy])){dsu::merge(trans(x,y),trans(nx,ny));}}++now;}int fa=dsu::find(trans(xx,yy));if(!dsu::mark[fa]){dsu::mark[fa]=1;++ans;}}printf("%d\n",ans);return 0;
}

缩行之后的代码

(这是啥啊……)

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <iostream>
const int maxn=1000;
const int dx[]={1,0,-1,0};
const int dy[]={0,1,0,-1};
int f[maxn*maxn+10],mark[maxn*maxn+10],n,m,h[maxn+10][maxn+10],cnt,ans;
struct point{int x,y;bool operator <(const point &other)const{return abs(h[x][y])<abs(h[other.x][other.y]);}
}city[maxn*maxn+10],full[maxn*maxn+10];
int find(int x){return f[x]?(f[x]=find(f[x])):x;}
int merge(int x,int y){return (x=find(x))==(y=find(y))?0:f[x]=y,mark[x]&&(mark[y]=1);}
int trans(int x,int y){return (x-1)*m+y;}
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;++i)for(int j=1;j<=m;++j){scanf("%d",&h[i][j]);(h[i][j]>0)&&(city[++cnt].x=i,city[cnt].y=j);full[trans(i,j)].x=i,full[trans(i,j)].y=j;}std::sort(city+1,city+cnt+1),std::sort(full+1,full+n*m+1);for(int i=1,now=1,xx,yy,fa;xx=city[i].x,yy=city[i].y,(i<=cnt);++i,fa=find(trans(xx,yy)),ans+=(!mark[fa])&&(mark[fa]=1))for(int x,y;(x=full[now].x),(y=full[now].y),((now<=n*m)&&(abs(h[full[now].x][full[now].y])<=abs(h[xx][yy])));++now)for(int j=0,nx,ny;nx=x+dx[j],ny=y+dy[j],j<4;++j){if((nx<=0)||(nx>n)||(ny<=0)||(ny>m))continue;if(abs(h[nx][ny])<=abs(h[xx][yy]))merge(trans(x,y),trans(nx,ny));}return printf("%d\n",ans),0;
}

转载于:https://www.cnblogs.com/Canopus-wym/p/10376203.html

http://www.lbrq.cn/news/2684845.html

相关文章:

  • 做网站公司 备案seo信息优化
  • 个体工商户未做年报会罚款吗郑州seo公司排名
  • 东营网站开发公司太原网站制作优化seo公司
  • 如何自己设计图片搜索引擎优化的方法和技巧
  • 注册个网站怎么注册网站整体优化
  • tp钱包下载优化大师免费安装下载
  • 做互助盘网站谷歌海外广告投放
  • 水泥网站营销方案怎么做手机google官网注册账号入口
  • 那个网站做拍手比较好seo优化快速排名技术
  • web开发前端框架优化大师apk
  • 企业网站建设admin外包公司的人好跳槽吗
  • 免费web服务器网站澳门长沙seo网络公司
  • 找深圳做网站的公司seo代运营
  • 织梦网站tel标签郑州网站推广培训
  • 松山湖做网站专业网站优化公司
  • 网站运维托管软件开发一般需要多少钱
  • 酒店品牌网站建设推广网站怎么注册
  • 网做英文网站链接制作
  • 什么网站可以做任务挣钱的青岛网站建设制作推广
  • 做网站建设需要多少钱搜索引擎推广的三种方式
  • 做网站注意事项北京全网营销推广公司
  • 自助业务网站系统seo收录查询工具
  • 免费网站模板 怎么用广东公共广告20120708
  • 政府网站建设程序的设计原则不包括百度快速收录提交工具
  • 免费建网站赚钱免费企业网站建设
  • 甘肃省今天疫情最新情况sem和seo是什么
  • 有关大学生做兼职的网站无锡营销型网站建设
  • 网站ipv6改造怎么做企拓客app骗局
  • 网站建设与维护手机app免费下载
  • 泰安公司网站建设沈阳seo
  • 嵌入式硬件——ARM
  • java面试题储备4: 谈谈对es的理解
  • 卫生间装修防水怎么做合适?
  • 机器学习 TF-IDF提取关键词,从原理到实践的文本特征提取利器​
  • 教程 | Win11彻底关闭“推荐的项目“,解放开始菜单! (Windows11推荐项目设置器)
  • react+vite-plugin-react-router-generator自动化生成路由