首页 > 其他分享 >CF576C 题解

CF576C 题解

时间:2023-01-19 20:22:05浏览次数:53  
标签:CF576C int 题解 sq query return id

注意到 \(\sum\limits_{i=2}^N |x_{p_i} - x_{p_{i-1}}| + |y_{p_i} - y_{p_{i-1}}|\)。 本质上是两个点之间的曼哈顿距离

而曼哈顿最小距离生成树要 \(O(n^2 \log n)\) ,显然过不了。

注意到我们写过一个叫莫队的东西。

而莫队的复杂度为 \(O(n \sqrt n)\) ,也就是我们要求的东西。

加一点小优化,奇偶排序。

就可以过了。

怎么证明?

可以看一看这一篇博客

精简来说就是控制了左右指针跨越块的数量。

#include<bits/stdc++.h>
using namespace std;
const int maxn=1000001;
struct query{
    int l,r,id;
}q[maxn];
int n;
int sq;
bool cmp(query a,query b)
{
    if(a.l/sq==b.l/sq)
    {
        if(a.l/sq&1)
        {
            return a.r<b.r;
        }
        else
        {
            return a.r>b.r;
        }
    }
    else
    {
        return a.l<b.l;
    }
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    sq=1145;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>q[i].l>>q[i].r;
        q[i].id=i;
    }
    sort(q+1,q+n+1,cmp);
    for(int i=1;i<=n;i++)
        cout<<q[i].id<<' ';
}

标签:CF576C,int,题解,sq,query,return,id
From: https://www.cnblogs.com/chifan-duck/p/17062083.html

相关文章

  • CF1768B 题解
    首先我们思考什么数是不用排序的。显然,序列中一个由\(1\)开始,每次递增\(1\)的子序列是不用排序的。为什么呢?因为我们把其他数按从大到小排好后这个子序列刚好构成排......
  • 洛谷P4983 忘情 题解报告
    题目地址题意:把正整数序列分隔为m个区间,若单个区间的元素之和为X,则其贡献为\((X+1)^2\)。求所有区间的贡献之和的最小值。分析:wqs二分+斜率优化dp。用单调队列发可......
  • abc273G题解
    \(dp[i][j]\):考虑到前i行,有j个2的方案数。设有k个1(计算可得)。\(a_{i+1}=0\):\(dp[i][j]\todp[i+1][j]\)\(a_{i+1}=1\):\(dp[i][j]\times(n-j-k)\todp[......
  • win10下python3.9的代理报错问题解决(附web3的polygon爬虫源码)
    背景因为工作中经常需要代理访问,而开了代理,request就会报错SSLError,如下:requests.exceptions.SSLError:HTTPSConnectionPool(host='test-admin.xxx.cn',port=443):Ma......
  • C# 使用SQLDMO备份数据库时不显示进度的问题解决方法
    在使用SQLDMO备份数据库的过程中,参考了网上的例子,但是进度条却不显示,每次返回的都是0,解决方法是使用全局变量,每次做个累加就可以了。stringServerName="";......
  • Nextcloud安装扩展记录以及问题解决方法
    1、Nextcloud支持显示视频缩略图-23-01-19安装yasm(http://www.tortall.net/projects/yasm/releases/)wgethttp://www.tortall.net/projects/yasm/releases/yasm-1.3.0.......
  • Loj 507 接竹竿 题解
    Loj链接:接竹竿${\scr\color{SkyBlue}{\text{Solution}}}$题目大意:给定一个数组,每次加入一种颜色的数,可以取走与它颜色相同的两个数之间的所有数,问最后取走的所有数......
  • 2023牛客寒假算法基础集训营1-大部分题解
    比赛概况solve:ACDHKLMrank:374/3835dirt:630补题情况EFG题解E:鸡算几何题目链接:https://ac.nowcoder.com/acm/contest/46800/E思路:简单的计算几何叉积运算。我......
  • AT_abc139f 题解
    我们注意向量加法的几何意义。将多个向量向加时,最优的情况是所有边的极坐标单调。但是有一种特殊情况,就是从极角最大的到极角最小的。因此把所有向量极角排序,在做一些处......
  • luogu P1452 题解
    管理备注:虽然此题解为乱搞,但是本乱搞是非常有意义的经典乱搞,故保留在题解区中供学习与参考。我们充分发扬人类智慧:将所有点全部绕原点旋转同一个角度,然后按\(x\)坐标......