考场上,整整看了半个小时以上的题目!!!

化简题意:

给定一个全0矩阵,一些坐标点(x,y)为1,当三个点可以构成一个直角三角形时(直角边长为整数)拓展为一个矩形,之后从(0,0)出发,求最多的占用行数或占用列数

反正就是很麻烦的题就对了。。。

考场历程:

1、没看懂题,就去看下一题了

2、第三题可做性极差(tpsort+dp或网络流)

3、n^2拓展完了新点,发现样例就是个弟弟!(拓展完变成全1矩阵)

4、最小最大,想着二分来着,但是秒pass

5、想强行建边,跑最短路

6、dp根本想不出来....(行和列)

7、考完之后发现这题就是在侮辱智商

solution:

首先,n^2拓展点很容易,枚举点如何暴力即可。

先来讲dp怎么写吧.....

这个dp就是流氓.....

怎么说呢,考场上一直在想:跑一个行最优,列最优,比最小值,就成了最长不下降子序列之类的东西...

但是路径不一定是一个嘢....

于是考场就暴毙了

其实,dp方程式....

  • 二维,f[i][j]表示从(0,0)拓展到当前点的最大值
  • 如果当前点是1点,+1
  • 如果不是,就更新,从左边和上边找一个最大值续上
  • 我管你是行最大还是列最大,都给我最大然后+1再说

这就是这个dp欠的地方(还是我太弱了)

dp的事解决了,加上之前的n^2拓展点,理论上5000*5000应该是能过去的,但是25000000,加上3~4的常数,确实是会T掉1~2个点。

于是,这里有一个结论(我考场上也发现了呃呃呃)如果是对应坐标的三个点可以拓展另外一个点,那么,这三个点的坐标一定对应了四个数(两个数对)

两个数对自由组合,就成了4个点,而我们已知了三个点,只需要在查询的时候查询一下是否出现过四个数就行了。

有点难以理解....借图

给出的三个点的坐标为(1,5001)(1,5002),(2,5002),我们把横坐标放在一个集合,纵坐标放在一个集合{1,2}{5001,5002},自由组合,就能够快速地判断是否存在这个点了。

因为是两个集合,所以并查集数组要开两倍

代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn=;
int n;
int fa[maxn*+];
inline int find(int x)
{return fa[x]==x?x:fa[x]=find(fa[x]);}
int f[maxn+][maxn+]; int main()
{
scanf("%d",&n);
for(int i=;i<=;i++)
fa[i]=i;
for(int i=;i<=n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
fa[find(x)]=find(y+maxn);
}
for(int i=;i<=maxn;i++)
{
for(int j=;j<=maxn;j++)
{
if(find(i)==find(j+maxn))
{
f[i][j]=f[i-][j-]+;
}
else
f[i][j]=max(f[i][j-],f[i-][j]);
}
}
printf("%d",f[maxn][maxn]);
return ;
}

(完)

雷神领域(并查集真是个好东西)并查集+流氓dp的更多相关文章

  1. 并查集——poj1703(带权并查集入门)

    传送门:Find them, Catch them 题意:警察抓获N个罪犯,这些罪犯只可能属于两个团伙中的一个,现在给出M个条件(D a b表示a和b不在同一团伙),对于每一个询问(A a b)确定a ...

  2. 问题 A: 雷神领域

    传送门 题目描述 L君,S大陆首屈一指的天才魔法师,创造了一个新魔法:雷神领域.  这个魔法会首先在地面上形成正方网格魔法阵列,然后在某些位置召唤雷电轴标.注意:一个位置只能有一个雷电轴标存在. 雷电 ...

  3. 收到西门子发来的UG告知函怎么办?Solidworks盗版被查如何防范?厂商是怎么样查到公司在用盗版,有什么方法可以核实真假?……

    收到西门子发来的UG告知函怎么办?Solidworks盗版被查如何防范?厂商是怎么样查到公司在用盗版,有什么方法可以核实真假?--很多企业信息化管理leader或者老板都希望能够通过一些取巧的办法来防 ...

  4. windows+mysql集群搭建-三分钟搞定集群

    注:本文来源:  陈晓婵   <  windows+mysql集群搭建-三分钟搞定集群   > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...

  5. 搭建高可用mongodb集群(三)—— 深入副本集内部机制

    在上一篇文章<搭建高可用mongodb集群(二)—— 副本集> 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制.还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的? ...

  6. Apache shiro集群实现 (八) web集群时session同步的3种方法

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  7. Apache shiro集群实现 (七)分布式集群系统下---cache共享

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  8. Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  9. Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  10. Mongodb集群搭建之 Sharding+ Replica Sets集群架构(2)

    参考http://blog.51cto.com/kaliarch/2047358 一.概述 1.1 背景 为解决mongodb在replica set每个从节点上面的数据库均是对数据库的全量拷贝,从节 ...

随机推荐

  1. asp.net core learn

    .NET Core WebApi RESTful规范 RESTful API 最佳实践 理解RESTful架构 接口版本控制 Support multiple versions of ASP.NET ...

  2. 网络驱动之net_device结构体

    在Linux系统中,网络设备都被抽象为struct net_device结构体.它是网络设备硬件与上层协议之间联系的接口,了解它对编写网络驱动程序非常有益,所以本文将着手简要介绍linux-2.6.3 ...

  3. Pycharm(Mac版)快捷键操作篇

    Mac键盘符号和修饰键说明 ⌘ Command ⇧ Shift ⌥ Option ⌃ Control ↩︎ Return/Enter ⌫ Delete ⌦ 向前删除键(Fn+Delete) ↑ 上箭头 ...

  4. python selenium句柄操作

    一.获取当前窗口句柄 1.元素有属性,浏览器的窗口其实也有属性的,只是你看不到,浏览器窗口的属性用句柄(handle)来识别. 2.人为操作的话,可以通过眼睛看,识别不同的窗口点击切换.但是脚本没长眼 ...

  5. 从源码的角度彻底搞懂 HandlerMapping 和 HandlerAdapter

    彻底搞懂 HandlerMapping和HandlerAdapter 知识点的回顾: 当Tomcat接收到请求后会回调Servlet的service方法,一开始入门Servlet时,我们会让自己的Se ...

  6. java集合之linkedList链表基础

    LinkedList链表: List接口的链接列表实现.允许存储所有元素(包含null).使用频繁增删元素. linkedList方法: void addFirst(E e) 指定元素插入列表的开头 ...

  7. ArrayList源码解析(二)

    欢迎转载,转载烦请注明出处,谢谢. https://www.cnblogs.com/sx-wuyj/p/11177257.html 自己学习ArrayList源码的一些心得记录. 继续上一篇,Arra ...

  8. docker-compose 的使用

    1.安装docker-compose,参考官方教程:https://docs.docker.com/compose/install/ [chenjl@ipha-dev71- ~]$ sudo curl ...

  9. 02 Node.js学习笔记之http服务

    在Node中可以非常轻松的构建一个Web服务器,在Node中提供了一个http模块,这个模块主要功能就是帮助你创建一个Web服务器. 创建步骤: //1.加载http模块 var http=requi ...

  10. 玩转u8g2 OLED库 MAX7219_32X8点阵模块

    u8g2 OLED库 + MAX7219_32X8点阵模块 理论基础 玩转u8g2 OLED库,一篇就够 玩转u8g2 OLED库,一篇就够(字数太多 要分篇) 实验内容 Full screen bu ...