首页 > 其他分享 >ABC338 E Chords 题解

ABC338 E Chords 题解

时间:2024-01-28 11:12:31浏览次数:28  
标签:ABC338 Chords int 题解 long 异或 maxn

Question

一个圆上有 \(2N\) 个点均匀分布,给出 \(N\) 条线,每条线连接两个顶点

问,有没有两条线相交

image.png

Solution

也算一个比较典的题目

考虑到这种两两配对,配对中有没有交错关系的可以考虑异或哈希

因为一个数异或两次等于它本身,所以我们可以用异或来实现一个 “撤销” 操作

我们当我们第二次异或一条线段时,我们只需要判断是否与第一次异或前的值相同即可

Code

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 4e5+5;
int a[maxn],b[maxn],lst[maxn];

int p[maxn],h[maxn];


int main(){
    freopen("E.in","r",stdin);
    srand(time(0));
    
    int n; scanf("%d",&n);
    for(int i=1;i<=n;i++){
        int x,y; scanf("%d%d",&x,&y);
        if(x>y) swap(x,y); lst[y] = x;
        a[x] = i; a[y] = i;
        b[x] = 1; b[y] = 2;
    }
    for(int i=1;i<=n;i++) h[i] = rand();
    for(int i=1;i<=n;i++) h[i] ^= 2333;

    for(int i=1;i<=2*n;i++){
        if(b[i] == 1){
            p[i] = p[i-1] ^ h[a[i]];
        }
        else{
            p[i] = p[i-1] ^ h[a[i]];
            if(p[i] != p[lst[i]-1]){
                puts("Yes"); return 0;
            }
        }
    }
    puts("No");
    return 0;
}

标签:ABC338,Chords,int,题解,long,异或,maxn
From: https://www.cnblogs.com/martian148/p/17992573

相关文章

  • UVA10852 的题解
    UVA10852的题解题目大意给定自然数\(n(100\leqn\leq10000)\),寻找质数\(x\len\),使得\(p\timesx\leqn<(p+1)\timesx\)且\(n-p\timesx\)最大。思路不难发现,\(p\)其实就是$\left\lfloor\frac{n}{x}\right\rfloor$,所以,我们只要找到对应的\(x\),\(p\)的只就......
  • 洛谷题解-P3003 [USACO10DEC] Apple Delivery S (dijkstra)
    题目描述Bessiehastwocrispredapplestodelivertotwoofherfriendsintheherd.Ofcourse,shetravelstheC(1<=C<=200,000)cowpathswhicharearrangedastheusualgraphwhichconnectsP(1<=P<=100,000)pasturesconvenientlynumb......
  • CF765F Souvenirs 题解
    题目链接:CF或者洛谷想了很久,然后想起做过的一道题:秃子酋长,一开始以为差不多,结果写着写着就发现不对劲了。最后写出了个神仙回滚莫队解法,感觉很妙,记录下。进入神仙分析时刻首先,我们来考虑一个事实,加上一个数以后,如果能找到它的前后驱,那么可以立马更新最优解,这个也即是瓶颈点。......
  • ABC338 题解(A-E)
    前言:F,G后续补充。A题意判断一个字符串,是否满足只有第一位为大写字母,其余为小写字母。Sol字面意思模拟即可。Code#include<bits/stdc++.h>#definelllonglong#defineN200005#defineendl"\n"#definefifirst#definesesecondusingnamespacestd;constll......
  • AndroidStudio 编辑xml布局文件卡死问题解决
    之前项目编写的都是正常,升级AndroidStudio后编辑布局文件就卡死,还以为是AndroidStudio文件。其实不然,我给整个项目增加了版权声明。所以全部跟新后,布局文件也增加了版权声明。估计AndroidStudio在解析布局文件时候因为有版权声明的原因导致卡死,所以删除版权声明就可以了。可以......
  • 洛谷题解-P1821 [USACO07FEB] Cow Party S
    https://www.luogu.com.cn/problem/P1821题目描述寒假到了,nnn头牛都要去参加一场在编号为xxx的牛的农场举行的派对,农场之间有mmm条有向路,每条路都有一定的长度。每头牛参加完派对后都必须回家,无论是去参加派对还是回家,每头牛都会选择最短路径,求这nnn头牛的最短路径(一个......
  • 洛谷题解-P1673 [USACO05FEB] Part Acquisition S
    https://www.luogu.com.cn/problem/P1673题目描述奶牛们接到了寻找一种新型挤奶机的任务,为此它们准备依次经过N(1≤N≤5×104)N(1\leN\le5\times10^4)N(1≤N≤5×104)颗行星,在行星上进行交易。为了方便,奶牛们已经给可能出现的K(1≤K≤103)K(1\leK\le10^3)K(1≤K≤103)......
  • CF739A Alyona and mex 题解
    题目传送门前置知识贪心|构造解法从贪心的角度分析,最小的\(\operatorname{mex}\)仅会与长度最小的区间有关;另外为使得\(\operatorname{mex}\)最大,当\(\operatorname{mex}\)等于区间长度的时候即为所求。记\(ans\)表示此时得到的答案。构造序列时,长度最小的区间一定......
  • CF1433E Two Round Dances 题解
    题目传送门前置知识圆排列解法\(\dfrac{Q_{n}^{\frac{n}{2}}Q_{\frac{n}{2}}^{\frac{n}{2}}}{A_{2}^{2}}\)即为所求。同时因为\(n\le20\)和没有模数,所以不需要处理逆元,暴力算即可。代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#defineu......
  • 洛谷 P1749 [入门赛 #19] 分饼干 II 题解
    题目传送门先给结论:记\(S=1+2+\dots+k\),则当\(N\geS\)时为YES,当\(N<S\)时为NO。严谨一点,证明如下:若能成功分配饼干,记\(k\)名小朋友拿到的饼干数量分别为\(a_1,a_2,\dots,a_k\)。由于饼干数量各不相同且均为整数,不妨设\(a_1<a_2<\dots<a_k\),则\(a_2\gea_1+1,a_3\g......