首页 > 其他分享 >「NOIP 模拟赛 20230709」T3 - 与行星相会 题解

「NOIP 模拟赛 20230709」T3 - 与行星相会 题解

时间:2023-07-09 16:13:08浏览次数:58  
标签:return r2 NOIP int 题解 T3 getfa r1

题目大意

原题

有一个 \(n\times n\) 的点阵,将相邻的点连边得到一个 \((n-1)\times(n-1)\) 的网格。\(q\) 次操作,每次删掉一条边,求删掉后边两端的点是否仍在一个连通块内。强制在线。

题解

显然,由于对偶图的性质,原图的一个割对应对偶图中的一个环,所以只需要删掉一条边时在对偶图中连边,若成环就输出 NO

#include<iostream>
#include<cstdio>
#define maxn 4500005
using namespace std;
int n,q,x,y,u,v,key,num,f[maxn];
int getfa(int p){if(f[p]==p) return p; return f[p]=getfa(f[p]);}
void uni(int p1,int p2){int r1=getfa(p1),r2=getfa(p2); if(r1==r2){printf("NO\n"); return;} printf("YES\n"); key++; f[r2]=r1;}
int main(){
	scanf("%d%d",&n,&q); num=(n-1)*(n-1)+1; for(int i=1;i<=num;i++) f[i]=i;
	while(q--){
		scanf("%d%d%d%d",&x,&y,&u,&v); x=(x+key)%n+1; y=(y+key)%n+1; u=(u+key)%n+1; v=(v+key)%n+1;
		if(x==u){
			if(x==1) uni(num,(x-1)*(n-1)+min(y,v));
			else if(x==n) uni(num,(x-2)*(n-1)+min(y,v));
			else uni((x-2)*(n-1)+min(y,v),(x-1)*(n-1)+min(y,v));
		}else{
			if(y==1) uni(num,(n-1)*(min(x,u)-1)+y);
			else if(y==n) uni(num,(n-1)*(min(x,u)-1)+y-1);
			else uni((n-1)*(min(x,u)-1)+y-1,(n-1)*(min(x,u)-1)+y);
		}
	} return 0;
}

标签:return,r2,NOIP,int,题解,T3,getfa,r1
From: https://www.cnblogs.com/qzhwlzy/p/17538855.html

相关文章

  • 寻找页码题解
    首先看题目,我也不知道这一题的出处。。。。在网上找了很久也没找到。。。题目描述从第1页开始,页码组成的数字序列如下:123..101112..99100101...这串序列又被称之为连写数。给定一个0到9之中的单独一位数字a,请问在这串序列中,第k次出现a,是在哪一页上?以数码1为例,第......
  • 华泰证券FINTECH决赛第二题题解
    被第二题搞得坐牢2个半小时,在最后10分钟才确定推出的求和公式没问题,是除法取模不规范导致求解有偏差,只能说菜是原罪。这里贴一下赛后修改的代码,希望能对列位有些帮助,欢迎巨佬指导。思路:分奇偶讨论固定长度下伪回文串的数量,定义长度为\(n\)的伪回文串的数量为\(a_{n}\):(1)\(n\)......
  • P7112 题解
    题意简述模板题,求一个\(n\timesn(n\le600)\)的方阵的行列式模一个正整数\(p(1\lep\le10^9+7)\)的值(\(p\)不一定是质数)。题目分析这个题的最终代码其实很简单,重点在于过程。说实话,我在做这个题之前也就只知道个行列式的定义,只会暴力硬算。做了这个题才了解了行列式有那......
  • 关于Azure-平台-Redhat-Linux-服务器时间同步的问题解决
    首先说明一下,关于Azure平台中国区,是没有RedhatLinux系统镜像的于是笔者这边是通过在Windows系统 Hyper-V管理器中安装完Redhat8.x操作系统后,最后将系统磁盘转换成转换为VHD格式然后经过一系列操作、最终在Azure平台上形成了自己的并且加固过的RedHatEnterpriseLinuxre......
  • 【题解】 [APIO2007] 动物园
    目录题目链接原题描述题目描述输入格式输出格式样例#1样例输入#1样例输出#1样例#2样例输入#2样例输出#2提示题意概括思路历程1.与环相关2.设计状态代码实现题目链接原题描述[APIO2007]动物园题目描述新建的圆形动物园是亚太地区的骄傲。圆形动物园坐落于太平洋的一个......
  • 洛谷题解——【模板】堆
    题目链接:【模板】堆【模板】堆题目描述给定一个数列,初始为空,请支持下面三种操作:给定一个整数\(x\),请将\(x\)加入到数列中。输出数列中最小的数。删除数列中最小的数(如果有多个数最小,只删除\(1\)个)。输入格式第一行是一个整数,表示操作的次数\(n\)。接下来\(n\)......
  • 并发网络周测题解释版
    并发网络周测题【一】理论篇1.简述OSI七层协议OSI七层协议(OpenSystemsInterconnection)是一种用于计算机网络通信的参考模型。该模型将网络通信过程分解为七个不同的层次,每个层次负责特定的功能和任务,这有助于网络设备和应用程序之间的协作和互操作性。【1】物理层(Physica......
  • CF500C New Year Book Reading 题解
    这一题是一道比较复杂的贪心(对于本蒟蒻来说)假如两本书\(a\)和\(b\),先看\(a\)再看\(b\),那么我们开始的时候就把\(a\)放在上面。这样的话,我们看\(a\)时就不需要搬动\(b\),看\(b\)的时候会搬动\(a\)。而一开始如果把放在上面,看\(a\)的时候需要搬动\(b\),看\(b\)......
  • 20230707-NOIP模拟赛(多校联训)
    20230707T1.信号传输(signal)考场思路先把这\(n+k+1\)个点都转化到平面直角坐标系上面又是没有想清楚就开始打代码(但至少比昨天好,懂得放弃)本来想的是按照x轴从左到右扫一遍每一次处理这一列上的每个点复杂度是\(O(n)\)但是后面想到有可能信号是从后面的点传送过来的所以我......
  • AtCoder Beginner Contest 308 题解
    https://atcoder.jp/contests/abc308/tasks_printA-NewScheme过水已隐藏。#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#include<ext/pb_ds/tree_policy.hpp>#include<ext/pb_ds/hash_policy.hpp>usingnamespacestd;u......