【arc076E】Connected?
Description
给你一个\(R*C\)的矩形,矩形中某些格子的端点上填了\(1\sim n\)这\(n\)个数字,每个数字出现了恰好两遍,现在要将每一对数字用曲线连起来,线不允许出矩形,问是否存在一种连线方案使得任意两条线不相交
数据范围:\(1<=R,C<=10^8,1<=n<=10^5\)
Solution
结论题什么的。。==
实际上我们可以将。。这个连线看成一个。。类似切割的操作,不停地切这个平面,然后如果说两个部分不相连了那么不能存在一对点分别存在于两个部分
这样转化一下之后就比较直观了,注意到如果说我们连的(切的)不是两个点都在边界上的一对点,这个平面并不会有新的不相连的部分产生,也就是说如果不存在连个点都在边界上这样的点对,就一定存在一种连线方式(各种缝隙绕来绕去之类的)满足要求
那么所以我们只要考虑那些两个点都在边界上的点对就好了,只要这些点对之间的连边不存在冲突,整个就肯定有解了,所以接下来提到的点对都是满足两个点都在边界上的点对
注意到一旦连了一对这样的点对,就会将其所在的平面部分分成两个独立的部分,而这两个部分之间不能连边,所以我们可以考虑从矩形的左上角开始,沿着边界顺时针转一圈,按顺序将沿路上所有的点列成一排,如果说一对点之间夹有不完整的一个点对(也就是。。一对点之间只有某个点对的其中一个),那么就说明这两个点对会有冲突(按照其中一个点对将平面分成两个部分之后,另一个点对的两个点必定会被分在两个不相连的部分),那就凉凉了,这个过程我们用一个栈模拟一下即可
mark:直观转化(可能做题需要一点想象力==)
代码大概长这个样子
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e5+10,add=1e8+1;
struct Data{
int x,id;
friend bool operator < (Data x,Data y){return x.x<y.x;}
}rec[N*2];
int st[N];
int n,m,tot,D;
int change(int x,int y){
if (x==1) return y;
if (y==m) return x+add;
if (x==n) return m-y+1+add*2;
if (y==1) return n-x+1+add*3;
return -1;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
#endif
int x1,y1,x2,y2,tmp1,tmp2;
scanf("%d%d%d",&n,&m,&D);
++n; ++m;
for (int i=1;i<=D;++i){
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
++x1; ++y1; ++x2; ++y2;
tmp1=change(x1,y1);
tmp2=change(x2,y2);
if (tmp1==-1||tmp2==-1) continue;
rec[++tot].x=tmp1; rec[tot].id=i;
rec[++tot].x=tmp2; rec[tot].id=i;
}
sort(rec+1,rec+1+tot);
int top=0;
for (int i=1;i<=tot;++i){
if (st[top]==rec[i].id)
--top;
else
st[++top]=rec[i].id;
}
if (top) printf("NO\n");
else printf("YES\n");
}
【arc076E】Connected?的更多相关文章
- 【poj1737】 Connected Graph
http://poj.org/problem?id=1737 (题目链接) 题意 求n个节点的无向连通图的方案数,不取模w(゚Д゚)w Solution 刚开始想了个第二类斯特林数,然而并不知道怎么求 ...
- 【CF913F】Strongly Connected Tournament 概率神题
[CF913F]Strongly Connected Tournament 题意:有n个人进行如下锦标赛: 1.所有人都和所有其他的人进行一场比赛,其中标号为i的人打赢标号为j的人(i<j)的概 ...
- 【CodeForces】913 F. Strongly Connected Tournament 概率和期望DP
[题目]F. Strongly Connected Tournament [题意]给定n个点(游戏者),每轮游戏进行下列操作: 1.每对游戏者i和j(i<j)进行一场游戏,有p的概率i赢j(反之 ...
- 【CodeChef】Find a special connected block - CONNECT(斯坦纳树)
[CodeChef]Find a special connected block - CONNECT(斯坦纳树) 题面 Vjudge 题解 还是一样的套路题,把每个数字映射到\([0,K)\)的整数, ...
- 【Henu ACM Round#24 E】Connected Components
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 要求把连续的一段li..ri的边全都删掉. 然后求剩下的图的联通数 如果暴力的话 复杂度显然是O(k*m)级别的. 考虑我们把li. ...
- 【Educational Codeforces Round 37 E】Connected Components?
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] bfs. 用一个链表来记录哪些点已经确定在某一个联通快里了. 一开始每个点都能用. 然后从第一个点开始进行bfs. 然后对于它的所有 ...
- Python高手之路【三】python基础之函数
基本数据类型补充: set 是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object ...
- Java基础知识【上】(转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- 【RDA】使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查
[RDA]使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查 分类: Linux RDA英文全称叫做"Oracle Remote Diagnostic Ag ...
随机推荐
- python爬取斗图网中的 “最新套图”和“最新表情”
1.分析斗图网 斗图网地址:http://www.doutula.com 网站的顶部有这两个部分: 先分析“最新套图” 发现地址栏变成了这个链接,我们在点击第二页 可见,每一页的地址栏只有后面的pag ...
- 初探C#
初探.NET底层原理 学习C#离不开.net平台,因为微软的开发平台真的是太强大了,它为每一个开发者都做了太多太多,但是我们不仅要知道怎么用,而且也应该知道其中的内部到底包含了什么.本篇文章不仅讲一些 ...
- 学习笔记之glog的使用
下载源码,使用cmake编译,最后得到了32位的静态库 glog.lib 使用库时要注意添加以下预定义: GLOG_NO_ABBREVIATED_SEVERITIES; GOOGLE_GLOG_DLL ...
- JUC——ThreadFactory线程工厂类(四)
ThreadFactory线程工厂类 在默认情况下如果要想创建一个线程类对象,大部分情况的选择是:直接通过子类为父类进行实例化,利用Runnable子类为Runnable接口实例化. 或者直接调用La ...
- 深圳第XX天
今天早晨,面了一家小公司.先说结果吧,面过了.但是,总感觉太假了.面试中很多问题都没有回答上来.然后老板看了一下简历,问:期薪资多少?我想了想,说7000.啊,要不留下来看看?我答应了.不到十分钟,就 ...
- sqoop安装与简单实用
一,sqoop安装 1.解压源码包 2.配置环境变量 3.在bin目录下的 /bin/configsqoop 注释掉check报错信息 4.配置conf目录下 /conf/sqoop-env.sh 配 ...
- mtv网站架构模式适合企业网站应用吗?
mtv网站架构模式适合企业网站应用吗?有时候在思考这样一个问题. 从开发角度来说,本来mvc的进度慢了些,如果在数据库管理方面用sql的话,管理起来也不很方便.小企业网本来数据就不很多,也没什么太多安 ...
- echarts.js使用心得--demo
首先要感谢一下我的公司,因为公司需求上面的新颖(奇葩)的需求,让我有幸可以学习到一些好玩有趣的前端技术. 废话不多时 , 直接开始. 第一步: 导入echarts.js文件 下载地址:http://e ...
- pygame (1) 移动小乌龟
小乌龟图片素材: 第一个简单的小游戏: 小乌龟会不断的移动,并且每当到达窗口的左右边界的时候,还会自动的掉头. 源码: import pygame import sys# 导入sys模块,退出时使用 ...
- 【探路者】互评beta版本
成员博客 1蔺依铭:http://www.cnblogs.com/linym762/ 2张恩聚:http://www.cnblogs.com/zej87/ 3米赫:http://www.cnblogs ...