首页 > 其他分享 >CF1922C Closest Cities 题解

CF1922C Closest Cities 题解

时间:2024-02-07 10:11:53浏览次数:35  
标签:suf CF1922C int 题解 scanf include clo Cities

解题思路

贪心,能走距离最短的城市就一定走。

分别考虑 \(x>y\) 和 \(x<y\) 的情况,两种情况分别是从后向前转移和从前往后转移,分别预处理一个前缀和和后缀和即可。

AC 代码

#include<stdio.h>
#include<stdlib.h>
#include <valarray>
#define N 100005
#define ll long long
int n,m,a[N],clo[N];
ll sum[N],suf[N];
inline void work(){
    scanf("%d",&n);
    for(register int i=1;i<=n;++i)
        scanf("%d",&a[i]);
    clo[1]=2,clo[n]=n-1;
    for(register int i=2;i<n;++i){
        int d1=a[i+1]-a[i];
        int d2=a[i]-a[i-1];
        clo[i]=d1<d2?i+1:i-1;
    }
    for(register int i=2;i<=n;++i)
        sum[i]=sum[i-1]+(clo[i-1]==i?1:a[i]-a[i-1]);
    for(register int i=n-1;i>=1;--i)
        suf[i]=suf[i+1]+(clo[i+1]==i?1:a[i+1]-a[i]);
    scanf("%d",&m);
    int x,y;while(m--){
        scanf("%d%d",&x,&y);
        if(x<y)
            printf("%lld\n",sum[y]-sum[x]);
        else printf("%lld\n",suf[y]-suf[x]);
    }
}
signed main(){
    int T;scanf("%d",&T);
    while(T--) work();
}

标签:suf,CF1922C,int,题解,scanf,include,clo,Cities
From: https://www.cnblogs.com/UncleSamDied6/p/18010675

相关文章

  • CF1338B Edge Weight Assignment 题解
    解题思路一种不需要树形dp的做法。因为是一颗无根树,所以我们不妨以重心为根。首先考虑边权最少的情况。可以发现这个时候对于任意两个叶子节点,我们可以分别考虑其到根节点的路径,这样对于求其路径的异或值是没有影响的,但是在这种情况下我们可以很方便的讨论其路径的奇偶性。令......
  • ABC335 A~E 题解
    A题目大意输入一个字符串,把这个字符串的最后一位改成4后输出这个字符串。解题思路直接模拟即可AC代码#include<iostream>#include<math.h>#include<time.h>#include<stdio.h>#include<algorithm>#definelllonglonginlinevoidwork(){std::strings;s......
  • P6025 线段树 题解
    解题思路暴力做法从\(l\)到\(r\)枚举每一个数,然后建线段树,记录最大下标,然后计算答案。代码略。时间\(O(n^2)\),期望得分:\(10\)分。优化暴力我们考虑每次枚举不遍历整棵线段树。显然,贪心的,最深的最右边的节点编号最大。那么我们可以发现,如果两颗子树大小相同,那么最大节......
  • csp-j题解
    csp-j题解第一题:小苹果原题洛谷P9748题目描述小Y的桌子上放着\(n\)个苹果从左到右排成一列,编号为从\(1\)到\(n\)。小苞是小Y的好朋友,每天她都会从中拿走一些苹果。每天在拿的时候,小苞都是从左侧第\(1\)个苹果开始、每隔\(2\)个苹果拿走\(1\)个苹果。随后小苞......
  • AT_ddcc2019_final_a 题解
    原题传送门题目描述:企鹅经过$1$个雪地方格需要$1$秒,经过$1$个冰地方格需要$\frac{1}{(k+2)}$秒。$k$是紧接着冰雪方格之前的冰雪方格数。在企鹅开始之前,高桥可以把$1$个雪方块变成冰方块。问企鹅离开起点后到达终点最少需要多少时间?思路分析:这道题是模拟+贪心......
  • P10125 「Daily OI Round 3」Simple题解
    原题传送门题目概述:给我们一个字符串,不区分大小写,让我们判断此字符串是与Acoipp等价,还是与Svpoll等价,或者是与前两者都不等价,并按题目条件输出。思路分析:我们只需要把此字符串的第一个字符转成大写,其他字符转成小写,并与那两个字符串进行比较就行了代码:#include<bits/st......
  • 2024牛客寒假算法基础集训营1个人补题题解(I)
    比赛链接:2024牛客寒假算法基础集训营1I、It'sbertrandparadox.Again!这么抽象的东西出得很好,下次别再出了。从bit和buaa不同的抽数规则可以得出一个结论:bit抽取具体坐标点的次数会明显小于buaa,甚至只有在几乎不可能的理想范围内两者抽取的次数才相近,因此因为样本量极大(1e5次......
  • P8330 [ZJOI2022] 众数 题解
    Description给定一个长度为\(n\)的序列\(a_1,a_2,\dots,a_n\),问选一段区间,它的价值是里面的众数个数\(+\)外面的众数个数,求最大价值,以及所有满足这个最大价值的区间的外面的众数颜色。\(\sumn\leq5\times10^5,n\leq2\times10^5\)。Solution考虑根号分治。定义一个......
  • 2024年2月6号题解
    P2872[USACO07DEC]BuildingRoadsS洛谷题目链接解题思路这个是一个最小生成树,把在平面直角坐标系中的点定义为顶点,把两个点的距离定义为边但这个题目并没有给出图中的边,也就是两个点的距离,因此我们要把这个图的边给补上,这个平面直角坐标系的点的每条边都是图上的边。但因......
  • 题解 AT_exawizards2019_e【Black or White】
    设\(P_b(k),P_w(k)\)表示已经吃了\(k\)块巧克力,把所有黑/白巧克力都吃光了的概率。枚举最后一块黑/白巧克力被吃的时间,容易得到:\[\begin{aligned}P_b(k)&=\sum_{i=1}^k\frac{\binom{i-1}{b-1}}{2^i}\\P_w(k)&=\sum_{i=1}^k\frac{\binom{i-1}{w-1}}{2^i}\\\end{aligned}\]......