• 2024-07-03D - Intersecting Intervals(abc355)
    题意:有n个区间,找出俩俩区间相交的个数分析:设初始俩俩相交,找出不相交的(不同区间l>r),减去即可#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;intmain(){   ios::sync_with_stdio(false);   intn,l[n+10],r[n+10];   cin>>n;  
  • 2024-05-31Atcoder ABC355 C~F
    C出题人太善良了,加强到\(10^5\)都没问题。考虑维护每条横线竖线两条对角线上被标记的点的个数,每次标记点后,判断是否有线上点全被标记。再考虑如何将点编号转为坐标,记编号为\(t\),推柿子:\[(x-1)\timesn+y=t\]\[nx+y=t+n\]\[x=\frac{t+n-y}{n}\]等同于找到\(y\)使得:\[n
  • 2024-05-28ABC355
    E将所有的下标作为点,建一张无向图。当且仅当可以询问\([l,r]\)时,在点\(l\)和\(r+1\)之间连一条边。可以发现能求出\([L,R]\)的和等价于\(L\)与\(R+1\)连通,且最少询问次数等于两点间最短路径边数。具体实现是容易的。F边权很小,提示我们可以暴力枚举和替换边。开
  • 2024-05-27ABC355 D区间相交问题
    ABC355D区间相交问题题意给出n个区间,每个区间给出左端点(l)和右端点(r),判断有多少区间成对相交。分析如果我们直接暴力查找每个区间是否和别的区间相交,那么时间复杂度就是O(\(n^2\)),肯定是过不了的。考虑如何优化,通过题意,可以发现优化的关键在于区间相交的判定方式,对于任意两
  • 2024-05-25ABC355
    A.WhoAtetheCake?模拟代码实现a,b=map(int,input().split())ifa==b:print(-1)else:print(6-a-b)B.Piano2模拟代码实现#include<bits/stdc++.h>#definerep(i,n)for(inti=0;i<(n);++i)usingnamespacestd;usingP=pair<
  • 2024-05-25ABC355 A ~ D
    A可能写麻烦了,但是至少它对了。#include<bits/stdc++.h>#definegtgetchar#defineptputchartypedeflonglongll;constintMAXN=2e5+5;constintmod=998244353;llread(){ llx=0,f=1;charch=gt(); while(ch<'0'||ch>'
  • 2024-05-25C - Bingo 2
    C-Bingo2https://atcoder.jp/contests/abc355/tasks/abc355_c 思路统计每行元素个数统计每列元素个数统计两个对角线的元素个数任意一个达到n,则满足条件 Codehttps://atcoder.jp/contests/abc355/submissions/53878562#defineintlonglongintn,t;vector<i
  • 2024-05-25ABC355 D
    D-IntersectingIntervals我们思考如何计算不交的线段数量首先总的线段如果全部相交那么线段数应为n*(n-1)/2那么对于每对r[i]<l[i]都为不交的线段所以我们需要计算不交的线段数同时删去自己本身点击查看代码#include<bits/stdc++.h>#defineintlonglong#defineall(