首先,如果没有这个平面的限制,考虑不断插入一对点,将与这两点连线有交的线从左到右,依次“移动”到左端点边上,因此一定是可行的

但当存在界限后,对于两个端点都在边界上的点对(一个端点在边界上还是可以用同样的构造),需要判断是否存在合法解:

如果将整个边界看作一个环,若存在两个点对$i$和$j$满足以$ijij$的顺序,那么一定不合法

同时,若不存在这样的关系,通过上述构造,先练两个端点不都在边界上的点对,再连都在边界上的点对,一定可行

考虑如何判定,由于这样的点对从任意一个点开始都是这样的形式,因此从某一点出发,维护一个栈表示当前还没有匹配的点,若当前点已经被插入栈中,且不为栈顶则无解,否则删除栈顶即可

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 100005
4 #define y1 y11
5 vector<int>v;
6 vector<pair<int,int> >vv[4];
7 stack<int>st;
8 int r,c,n,x1,y1,x2,y2,vis[N];
9 bool pd(int x,int y){
10 return ((!x)||(y==c)||(x==r)||(!y));
11 }
12 void push(int x,int y,int k){
13 if (!x)vv[0].push_back(make_pair(y,k));
14 else{
15 if (y==c)vv[1].push_back(make_pair(x,k));
16 else{
17 if (x==r)vv[2].push_back(make_pair(y,k));
18 else{
19 if (!y)vv[3].push_back(make_pair(x,k));
20 }
21 }
22 }
23 }
24 int main(){
25 scanf("%d%d%d",&r,&c,&n);
26 for(int i=1;i<=n;i++){
27 scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
28 if ((pd(x1,y1))&&(pd(x2,y2))){
29 push(x1,y1,i);
30 push(x2,y2,i);
31 }
32 }
33 for(int i=0;i<4;i++)sort(vv[i].begin(),vv[i].end());
34 for(int i=0;i<4;i++)
35 if (i<2)
36 for(int j=0;j<vv[i].size();j++)v.push_back(vv[i][j].second);
37 else
38 for(int j=vv[i].size()-1;j>=0;j--)v.push_back(vv[i][j].second);
39 for(int i=0;i<v.size();i++)
40 if (!vis[v[i]]){
41 vis[v[i]]=1;
42 st.push(v[i]);
43 }
44 else{
45 if (st.top()!=v[i]){
46 printf("NO");
47 return 0;
48 }
49 st.pop();
50 }
51 printf("YES");
52 }

[atARC076E]Connected的更多相关文章

  1. [LeetCode] Number of Connected Components in an Undirected Graph 无向图中的连通区域的个数

    Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), ...

  2. PTA Strongly Connected Components

    Write a program to find the strongly connected components in a digraph. Format of functions: void St ...

  3. poj 1737 Connected Graph

    // poj 1737 Connected Graph // // 题目大意: // // 带标号的连通分量计数 // // 解题思路: // // 设f(n)为连通图的数量,g(n)为非连通图的数量 ...

  4. LeetCode Number of Connected Components in an Undirected Graph

    原题链接在这里:https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/ 题目: Giv ...

  5. Windows Phone 8 解锁提示IpOverUsbSvc问题——IpOverUsbEnum返回No connected partners found解决方案

    我的1520之前总是无法解锁,提示:IpOverUsbSvc服务没有开启什么的. 根据网上网友的各种解决方案: 1. 把手机时间设置为当前时间,并且关闭“自动设置” 2. 确保手机接入了互联网 3.确 ...

  6. POJ1737 Connected Graph

    Connected Graph Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3156   Accepted: 1533 D ...

  7. [LintCode] Find the Weak Connected Component in the Directed Graph

      Find the number Weak Connected Component in the directed graph. Each node in the graph contains a ...

  8. Supporting Connected Routes to Subnet Zero

    Supporting Connected Routes to Subnet Zero IOS allows the network engineer to tell a router to eithe ...

  9. lintcode:Find the Connected Component in the Undirected Graph 找出无向图汇总的相连要素

    题目: 找出无向图汇总的相连要素 请找出无向图中相连要素的个数. 图中的每个节点包含其邻居的 1 个标签和 1 个列表.(一个无向图的相连节点(或节点)是一个子图,其中任意两个顶点通过路径相连,且不与 ...

随机推荐

  1. 从一个舒服的姿势插入 HttpClient 拦截器技能点

    马甲哥继续写一点大前端,阅读耗时5 minute,行文耗时5 Days 今天我们来了解一下如何拦截axios请求/响应? 这次我们举一反三,用一个最舒适的姿势插入这个技能点. axios是一个基于 p ...

  2. Java生成6位数验证码

    public static String getCode() { return String.valueOf((int) ((Math.random() * 9 + 1) * 100000));} 生 ...

  3. spark 解决错误java.io.InvalidClassException

    今天遇到一个现场问题,任务报错java.io.InvalidClassException.在开发环境是没有报错的,正式环境报错.大概类似于下面这样(非报错原文,摘自网上同类博客) java.io.In ...

  4. VS2019 及 Visual Assist X 安装配置

    Visual Studio 2019 安装 下载 https://visualstudio.microsoft.com/zh-hans/downloads/ 安装 设置 扩大 Solution Con ...

  5. 关于tkinter

    tkinter介绍 tkinter是python自带的GUI库,是对图形库TK的封装tkinter是一个跨平台的GUI库,开发的程序可以在win,linux或者mac下运行 组件概念 一个窗口中任意内 ...

  6. Noip模拟6 2021.6.10

    T1 辣鸡 首先吐嘈一下,这题的测试点就离谱,不说了,附上我65分代码: 1 #include<bits/stdc++.h> 2 #define int long long 3 using ...

  7. Qt坐标转换系统的理解

    转 https://blog.csdn.net/hgcprg/article/details/53537106 今天又看了一篇对Qt坐标转换系统以及QTransform的博客,作者讲的非常透彻,链接如 ...

  8. DC综合与Tcl语法结构概述

    转载:https://www.cnblogs.com/IClearner/p/6617207.html 1.逻辑综合的概述 synthesis = translation + logic optimi ...

  9. Python ValueError: Attempted relative import in non-package Relative import相对引用 错误

    包含相对路径import的python脚本不能直接运行,只能作为module被引用. 例如 from . import mod1 有这样代码的文件只能最为moulule为不能直接运行.相对路径就是相对 ...

  10. oracle 架构和一些工具了解

    oracle的架构大概分为3部分, 客户端:用户端 oracle instance:叫做实例,由内存结构(内存池或者叫SGA)和后台进程组成.Oracle Instance是Oracle RDBMS的 ...