题目链接:ヾ(≧∇≦*)ゝ

对于每一个点可以向它右边的点和下面的点连边,权值就为两个点的高度差

然后再把所有的边按边权从小到大排序,并查集加点

最后判断当前集合是否涵盖所有的航点,如果是,就输出最后一条边的边权,否则就继续加点

Code:

#include<bits/stdc++.h>
#define N 500001
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
int n,m,t,cnt,tt;ll ans;
int fa[N],ct[501][501];
int mp[501][501],sz[N],u[N];
struct dqy{ll v;int x,y;}w[N];
inline bool cmp(dqy a,dqy b){return a.v<b.v;}
int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);}
inline pii getpos(int num){
int x=num/m+(num%m!=0);
int y=num-(x-1)*m;
return make_pair(x,y);
}
int read(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
signed main(){
n=read(),m=read();
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
mp[i][j]=read();
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
ct[i][j]=read(),tt+=ct[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
if(j!=m){
w[++cnt].x=(i-1)*m+j;
w[cnt].y=w[cnt].x+1;
w[cnt].v=abs(mp[i][j]-mp[i][j+1]);
}
if(i!=n){
w[++cnt].x=(i-1)*m+j;
w[cnt].y=w[cnt].x+m;
w[cnt].v=abs(mp[i][j]-mp[i+1][j]);
}
}
sort(w+1,w+cnt+1,cmp);
for(int i=1;i<=n*m;i++) fa[i]=i;
for(int i=1;i<=n*m;i++){
sz[i]=1;pii now=getpos(i);
u[i]=ct[now.first][now.second];
}
for(int i=1;i<=cnt;i++){
int x=w[i].x,y=w[i].y;
int f1=find(x),f2=find(y);
if(f1==f2) continue;
sz[f1]+=sz[f2];
u[f1]+=u[f2];fa[f2]=f1;
if(u[f1]==tt){
ans=w[i].v;
break;
}
}
printf("%lld\n",ans);
return 0;
}

【洛谷P4955 】[USACO14JAN]越野滑雪越野滑雪的更多相关文章

  1. 洛谷P1434滑雪讲解

    题源:[戳这里] 洛谷博客链接:[戳这里] 我觉得这道题主要方法应该有两种: 动态规划 搜索 下面会分别对这两种方法进行简述 一,动态规划法首先的想法是用L(i,j)表示从点(i,j)出发能到达的最长 ...

  2. USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)

    usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...

  3. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  4. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  5. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  6. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  7. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

  8. 洛谷P1371 NOI元丹

    P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交  讨论  题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...

  9. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

随机推荐

  1. uC/OS-III 时钟节拍,时间管理,时间片调度

    uC/OS-III 时钟节拍,时间管理,时间片调度   时钟节拍 时钟节拍可谓是 uC/OS 操作系统的心脏,它若不跳动,整个系统都将会瘫痪. 时钟节拍就是操作系统的时基,操作系统要实现时间上的管理, ...

  2. c# thread pause example

    some times we need pause thread to do some additional job: c# thread pause example as below: 1. crea ...

  3. 查询表的DDL

    例如: SQL>create table tab001(id varchar(4)); SQL>select dbms_metadata.get_ddl(‘TABLE’,’tab001’) ...

  4. Selenium-ActionChainsApi接口详解

    ActionChains 有时候我们在通过Selenium做UI自动化的时候,明明能够在DOM树内看到这个元素,但是我在通过driver click.sendkey的时候,就是点击不到或无法输入字符串 ...

  5. FIFO IP核

    转载: 说白了,IP核就是别人做好了的硬件模块,提供完整的用户接口和说明文档,更复杂的还有示例工程,你只要能用好这个IP核,设计已经完成一半了.说起来容易,从冗长的英文文档和网上各个非标准教程中汲取所 ...

  6. 【源码】进入ASP.NET MVC流程的大门 - UrlRoutingModule

    UrlRoutingModule的功能 在ASP.NET MVC的请求过程中,UrlRoutingModule的作用是拦截当前的请求URL,通过URL来解析出RouteData,为后续的一系列流程提供 ...

  7. ANSYS渡槽槽身动水压力的施加(1)——矩形渡槽

    前言 依据水工抗震规范中关于渡槽动水压力的部分编一个用于ANSYS渡槽模型动水压力施加的命令流,是我研究生时一直想要做的一件事,原因嘛主要是想对比一下规范提供的方法和ANSYS声学流体单元模拟水体这两 ...

  8. jmeter-如何在JDBC Request中添加多条语句执行

    1.JDBC Connection Configuration中配置Database URL时在URL后面添加  ?allowMultiQueries=true 2.JDBC Request中添加语句 ...

  9. manjaro安装软件

    fcitx 安装以下包 fcitx-googlepinyin kcm-fcitx 安装了输入法之后,还要在/etc/profile或~/.xprofile里添加如下内容: export GTK_IM_ ...

  10. 深入浅出etcd系列Part 1 – etcd架构和代码框架

    1.绪论 etcd作为华为云PaaS的核心部件,实现了PaaS大多数组件的数据持久化.集群选举.状态同步等功能.如此重要的一个部件,我们只有深入地理解其架构设计和内部工作机制,才能更好地学习华为云Ku ...