首页 > 其他分享 >[ARC152C] Pivot

[ARC152C] Pivot

时间:2023-10-12 15:47:24浏览次数:28  
标签:int 翻折 very 最小值 ARC152C Pivot

[ARC152C] Pivot

very very easy。首先认识题目中的操作相当于沿 \(y = s\) 进行翻折,那你注意到一个单调的序列翻折之后仍然是单调的,并且翻折仅仅改变了他们差分数组的符号和最小值。那这样就很好做了,假设当前最小值为 \(u\),极差为 \(d\),沿 \(y = u + k\) 翻折后最小值变为了 \(2(u + k) - (u + d) = u + 2 * k - d\),可见变化量为 \(2 * k - d\),我们最后的任务是最小化最小值,那么直接来裴蜀定理就行了。根据均摊分析时间复杂度是 \(O(n)\) 的。

const int N = 2e5 + 10;
int n;
int a[N];

int main() {
  read(n);
  for(int i = 1; i <= n; ++i)
    read(a[i]);
  if(n == 1) {
    printf("%d\n",a[1]);
    return 0;
  }
  int d = a[n] - a[1], g = d;
  for(int i = 2; i <= n; ++i)
    if(2 * (a[i] - a[1]) < d) 
      g = __gcd(g, d - 2 * (a[i] - a[1]));
  printf("%d\n",a[1] % g + d);
}

标签:int,翻折,very,最小值,ARC152C,Pivot
From: https://www.cnblogs.com/DCH233/p/17759646.html

相关文章

  • 无涯教程-JavaScript - GETPIVOTDATA函数
    描述GETPIVOTDATA函数返回存储在数据透视表报表中的数据。您可以使用它从数据透视表报表中检索摘要数据,前提是该摘要数据在报表中可见。您可以通过以下方式快速输入一个简单的GETPIVOTDATA公式:在要向其返回值的单元格中键入=(等号),然后在"数据透视表"报表中单击包含要返回的......
  • PivotGridControl自定义行数据的统计公式
    我们在使用PivotGridControl进行数据统计的时候,用时候需要在不同的行使用不同的汇总公式的情况,本文就是为了说明怎么实现此功能,如下图说明 数据源: 注意:此时数据列指定的SummaryType设置的是Sum;并且数据列指定了为double类型  SummaryType指定的几种聚合函数,Max、Min、......
  • 论文解读(PERL)《PERL: Pivot-based Domain Adaptation for Pre-trained Deep Contextua
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]论文信息论文标题:PERL:Pivot-basedDomainAdaptationforPre-trainedDeepContextualizedEmbeddingModels论文作者:EyalBen-David、CarmelRabinovitz、RoiReichart论文来源:2020TACL论文地址:download 论文代码:download视屏......
  • Unity 中移动轴心 Pivot
    前言解决无法直接用鼠标移动UnityImage的轴心(Pivot)问题。如图所示,轴心为灰色:解决方案找到ToggleToolHandlePosition将center改为Pivot搞定......
  • BFPRT 算法 (TOP-K 问题)——本质就是在利用分组中位数的中位数来找到较快排更合适的p
    下面为代码实现,其所求为前k小的数:#include<iostream>#include<algorithm>usingnamespacestd;intInsertSort(intarray[],intleft,intright);intGetPivotIndex(intarray[],intleft,intright);intPartition(intarray[],intleft,intright,intpivo......
  • ORACLE UNPIVOT函数
    语法     函数用途: UNPIVOT函数用来将列值转换为行值.1. INCLUDE|EXCLUDENULLS子句参数可以控制在结果集中是否保留值为NULL的行(新生成的行,即PIVOT_FOR_CLAUSE参数值)。当省略这个控制参数时,默认为EXCLUDENULLS,即去除空值行。2. 列转行后结果集中生成的......
  • ORACLE PIVOT函数
      语法     函数用途: PIVOT函数被用于SELECT子句中,在查询时将行转换成列,并在由行转列时对对应数据进行聚合统计.一般使用PIVOT操作后结果集将比原结果集包含更多的列,以及更少的行。   计算步骤:      1.PIVOT函数计算位于PIVOT子句起始位置的聚合函数......
  • 记一次简单的存储过程和Pivot行转列
    首先我很讨厌写存储过程,其次我很讨厌没办法,主要是需要进行行转列,项目经理说可以用Pivot。我不是很精通sql,但是我会百度呀~pivot需要有确定的列名。那我这个项目里面没办法确定,最后问了gpt,使用动态sql(我以前也没用过),不过效果是我想要的,于是乎,改成存储过程吧。简单的存储过程......
  • 界面控件DevExtreme PivotGrid,拥有新的HTML编码体验!
    虽然DevExtreme刚刚发布了v23.1,但今天我们仍然要继续总结一下之前的主要更新(v22.2)中发布的一些与DevExtremePivotGrid(透视网格)组件相关的重要特性。DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout......
  • 【Oracle】行转列的函数wm_concat,listagg,xmlagg,pivot以及动态行转列
    【Oracle】行转列的几种情况表的数据如下朴实无华的函数1.wm_concat使用格式:select分组字段,wm_concat(要转换的列名)from表名groupby分组字段实例:selectit.Code,wm_concat(it.inv)fromttt20230705itgroupbyit.Code2.listagg()withingroup()使用格式:......