连接格点(最小生成树)
时间: 1000ms / 空间: 65536KiB / Java类名: Main
描述

Problem 2 : grid
连接格点

问题描述:
  有一个M行N列的点阵,相邻两点可以相连。一条纵向的连线花费一个单位,一条横向的连线花费两个单位。某些点之间已经有连线了,试问至少还需要花费多少个单位才能使所有的点全部连通。

输入格式

  第一行输入两个正整数m和n。
  以下若干行每行四个正整数x1,y1,x2,y2,表示第x1行第y1列的点和第x2行第y2列的点已经有连线。输入保证|x1-x2|+|y1-y2|=1。

输出格式

  输出使得连通所有点还需要的最小花费。

测试样例1

输入

输入样例
2 2
1 1 2 1
输出

输出样例
3
写在前面:最小生成树所花时间最长的题目
——————————————————————————————————————————————
解题思路:刚开始想法就是先连行再连列,但我脑(fan)洞(sha)大(bi)开,写出了个二维冰茶几,写的乱七八糟,只过了30%的数据,后来问了问Shallwe大爷,知道应该转换成一维(其实我也这么想过,但是没敢去试(╯°口°)╯︵┴─┴),再进行并查集操作就可以了),然后就过了。(其实我之前想用数学方法做,但是写完以后发现不对……)
代码:

#include<cstdio>
#include<iostream>
using namespace std;
int x1,x2,y1,y2,k,father[1000002],n,m,ans;
int f(int x,int y)
{return n*(x-1)+y;
}
int find(int x)
{if (father[x]!=x) father[x]=find(father[x]);return father[x];
}
main()
{scanf("%d%d",&m,&n);for (int i=1;i<=m*n;i++)father[i]=i;while (cin>>x1>>y1>>x2>>y2){int p=find(f(x1,y1)),q=find(f(x2,y2));if (p!=q) {father[p]=q;k++;}}for (int i=1;i<=n;i++)for (int j=1;j<m;j++){if (k==n*m-1) break;int x,y;x=find(f(j,i));y=find(f(j+1,i));if (x!=y){father[x]=y;k++;ans++;}}for (int j=1;j<=m;j++)for (int i=1;i<n;i++){if (k==n*m-1) break;int x,y;x=find(f(j,i));y=find(f(j,i+1));if (x!=y){father[x]=y;k++;ans+=2;}}printf("%d",ans);
}

【tyvj3303】连接格点,区分多维与单维很关键相关推荐

  1. ITK系列24_ 区域增长(孤立连接)算法对脑部PNG图像进行二维分割

    孤立连接 接 下 来 的 例 子 阐 述 了 itk::IsolatedConnectedImageFilter 的 用 法 . 这 个 滤 波 器 是itk::ConnectedThresholdI ...

  2. js连接蓝牙打印机打印一维码和二维码

    JavaScript使用原生JS(native.JS)连接蓝牙打印机,打印一维码.二维码 使用说明: 代码已经过测试,可正常使用 测试蓝牙打印机为 商米(SUNMI)V2S plus打印机,此设备为一 ...

  3. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  4. 从1维到6维,一文读懂多维数据可视化策略

    本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载 选自towardsdatascience 作者:Dipanjan Sarkar 参与:Jane W.乾树.黄小天 数 ...

  5. 【商务智能】数据仓库 ( 多维数据模型 | 多维数据分析 )

    商务智能系列文章目录 [商务智能]数据预处理 [商务智能]数据仓库 ( 多维数据模型 | 多维数据分析 ) 文章目录 商务智能系列文章目录 前言 一.数据仓库 与 传统数据库 区别 二.数据仓库系统体 ...

  6. mvc中嵌入ssrs报表_如何在SSRS报表中过滤多维OLAP多维数据集

    mvc中嵌入ssrs报表 Ever since the early days of my career, SQL Server Reporting Services (SSRS) has been o ...

  7. 大中型公司运维基础运维

    大中型公司运维基础运维 我们先谈谈运维整体概念: 核心:确保线上稳定 1.产品生产流程: 1.首先公司管理层根据公司发展方向定位,相关人员定位市场需求进行调研.分析.最终给出详细设计. 2.架构师根据 ...

  8. 【运维】运维知识体系(运维体系化成长)

    文章目录 职能划分 应用运维 安全运维(安全宝) 监控运维 系统运维 (阿里云) 运维标准化 1. 物理设备方面 2. 操作系统层面 3. 应用服务层面 工具化 1. shell脚本 2. 开源工具 ...

  9. 学术-物理-维空间:维空间

    ylbtech-学术-物理-维空间:维空间 根据90年代提出的M理论(超弦理论的一种),宇宙是11维的,由震动的平面构成的.在爱因斯坦那里,宇宙只是4维的(3维空间和1维时间),现代物理学则认为还有7 ...

最新文章

  1. model.fit以及model.fit_generator区别及用法
  2. php 启动服务器监听
  3. CSS实现三列图片等宽等间距布局
  4. 输入年份和月份输出该月有多少天python_Python实现用户输入年月日,程序打印出这是这一年的第多少天...
  5. Java学习之路之Hello World小程序
  6. java知识总结-13
  7. 从CSDN用户密码泄露谈一些非技术安全对策
  8. Java-注解第一篇认识Annotation
  9. E4A直播盒子APP源码搭建教程之——APP源码篇
  10. PPT如何压缩?PPT文件压缩的方法有哪些
  11. 支持服务器和客户端杀毒软件,服务器上小心使用杀毒软件和软件防火墙
  12. 数字生态大会上,云鼎实验室介绍了这些重要成果
  13. 金蝶云星空和小满OKKICRM单据接口对接
  14. Live800:在线客服系统排名是怎么样的?
  15. 常用手机尺寸以及分辨率
  16. Python对批量文件进行VAD检测和分段
  17. GGV纪源资本招募GGV Fellows啦!
  18. 知识问答与知识会话的区别
  19. 基于stm32的超声波HC-SR04测距仪含距离报警(温度补偿)
  20. Python计算机视觉——SIFT描述子

热门文章

  1. 补习系列(7)-springboot 实现拦截的五种姿势
  2. 从0到1入门:7天玩转IoT物联网实战营丨IoT喊你加入学习之旅!
  3. Unity——物理引擎
  4. 链家信息python
  5. (数学分析笔记)常用函数不定积分及其计算技巧
  6. WORD如何修改自动编号的起始编号值?
  7. sqlite 复合唯一索引_SQLite 索引(Index)
  8. 今天学到的几个有用的awk命令用法
  9. 制作点击文字变颜色_手机照片、视频怎样添加文字?原来很简单,4种方法一分钟搞定...
  10. 计算机专业本科毕业转行会计,大学里就业最难的5个专业,毕业后难找工作,很多同学都转行了!...