Luogu P4552 [Poetize6] IncDec Sequence 更好的题解

这篇具有很好参考价值的文章主要介绍了Luogu P4552 [Poetize6] IncDec Sequence 更好的题解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原题链接

第一步对于学过差分的人应该不难想
定义差分数组 $dis \quad s.t. \quad dis[i] = a[i] - a[i-1] $
那么不难发现问题一只要让 \(dis[2] ... dis[n]\)中全部为 \(0\) 即可
区间\([l,r]\)加一操作在差分数组中意味着\(dis[l]=dis[l]+1,dis[r+1]=dis[r+1]-1\)
即在差分数组中每次选取\((x,y),dis[x]=dis[x]+1,dis[y]=dis[y]-1\)
注意这里\(x,y\)可以选取\(1...n+1\)
减一同理
最后要使\(dis[2] ... dis[n]\)全为0,首先在\(dis[2] ... dis[n]\)选取一个正数和一个负数是他们配对加一或减一,直到最后只剩下一个数,不难发现这个数就是\(dis[2] ... dis[n]\)中正数的和\(sum^+\)和负数的和的绝对值\(|sum^-|\)的差,让他与dis[1]或dis[n+1]配对即可

最后整理可得:\(min(sum^+,sum^-)+|sum^+-|sum^-||\),即\(max(sum^+,|sum^-|)\)就是第一小问答案

对于第二小问,不难注意答案序列的不同只和在第一小问中最后剩下的那个数\(k = sum^+-|sum^-|+1\)有关
我们这里不妨设\(k > 0\),那么它可以和1或n+1配对,这里两个操作就代表了原数组\(a[1,k-1]\)全部加一和原数组\(a[k,n]\)全部减一,也就产生了两种不同的序列
那么这两种操作进行的次数的和必然是\(k\),那么就产生了k+1中不同的选法(第一个操作进行\(0...k\)次)
对于\(k < 0\)的情况可以同样地进行讨论
那么第二问答案就是\(k+1=|sum^+-|sum^-||+1\)文章来源地址https://www.toymoban.com/news/detail-592565.html

//c++AC代码
#include <bits/stdc++.h>
using namespace std;

int n,a[(int)1e5+5],dis[(int)1e5+5];
long long sum_z,sum_f,rest;

int main()
{
	scanf("%d",&n);
	for(int i = 1;i <= n;++i)
	{
		scanf("%d",a+i);
	}
	for(int i = 1;i <= n;++i)
	{
		dis[i]=a[i]-a[i-1];
	}
	for(int i = 2;i <= n;++i)
	{
		if(dis[i] > 0)
			sum_z+=dis[i];
		else 
			sum_f+=dis[i];
	}
	rest=sum_z+sum_f;
	printf("%lld\n",max(sum_z,std::abs(sum_f)));
	printf("%lld",(long long)std::abs(sum_z-std::abs(sum_f))+1);
	return 0;
}

到了这里,关于Luogu P4552 [Poetize6] IncDec Sequence 更好的题解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Luogu】 P5445 [APIO2019] 路灯

    点击打开链接 转化很妙 考虑关路灯 x x x 的操作 令左边第一个未关的路灯为 L L L ,右边第一个未关的路灯为 R R R ,那么这一次会影响的区间即为 l ∈ [ L + 1 , x ] ,    r ∈ [ x , R − 1 ] lin[L+1,x],;rin[x,R-1] l ∈ [ L + 1 , x ] , r ∈ [ x , R − 1 ] ,既然有 2 个限制,那么我们把限制

    2024年02月10日
    浏览(64)
  • 【Luogu】 P6076 [JSOI2015]染色问题

    点击打开链接 可以一个一个条件考虑 只考虑条件 1 1 1 答案即为 ( c + 1 ) n m (c+1)^{nm} ( c + 1 ) nm 考虑条件 1 , 2 1,2 1 , 2 对每一行的方案数减去 1 1 1 答案即为 ( ( c + 1 ) m − 1 ) n ((c+1)^m-1)^n (( c + 1 ) m − 1 ) n 考虑条件 1 , 2 , 3 1,2,3 1 , 2 , 3 考虑容斥 容斥至少有 i i i 列未被染色,即为

    2024年02月09日
    浏览(40)
  • 【LuoGU 1273】有线电视网——树上分组背包问题

    某收费有线电视网计划转播一场重要的足球比赛。他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点。 从转播站到转播站以及从转播站到所有用户终端的信号传输费用都是已知的,一场转播

    2024年02月16日
    浏览(27)
  • luogu_P1040 [NOIP2003 提高组] 加分二叉树

    P1040 [NOIP2003 提高组] 加分二叉树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意:给你一颗中序遍历为1到n的二叉树,和每个节点的val。树的值=左子树的值×右子树的值+根的val,空树值为1,求整个树最大值和这个值树的前序遍历。 题解:区间dp。dp[l][r]表示最大值,root[l][

    2023年04月27日
    浏览(57)
  • UE4 Sequence添加基础动画效果 (05-蓝图触发Sequence)

    在上一篇博客(UE4 Sequence添加基础动画效果 (04-在序列中使用粒子效果))的基础上增加角色进入某个区域触发过场动画的效果。 1.点击编辑FallingRocks来打开落石蓝图  打开后可以发现一个自定义事件节点RockTrigger  2.打开过场动画主序列  将两个落石Actor拖入  3.点击“+Tr

    2024年02月07日
    浏览(43)
  • UVM在test组件内启动sequence/virtual sequence的方法

    在UVM中需要启动sequence的场景主要分为以下两种: 1. 在 uvm_test 组件中启动顶层 sequence 或者 virtual sequence 运行测例; 2. 在层次化sequence 的顶层 sequence 中启动 sub-sequence;virtual sequence中启动相应的sequence; 情况一:  在uvm_test 组件中启动顶层 sequence 或者 virtual sequence 运行测例

    2024年02月10日
    浏览(24)
  • A - Block Sequence

    (1)对于每一个位置,有三种选择,一是选择删除,二是选择当排头清洗,三是被前面的排头清洗; (2)注意到总是要求将最后一位数清洗完,即前面信息依赖后面信息,于是考虑从后往前分析,令f[i]描述i~n最小代价,则对于第i位,可选择 删除:  f[i] = f[i +1] + 1; 清洗:

    2024年02月08日
    浏览(32)
  • HDFS中的sequence file

    sequence file是hadoop提供的一种二进制文件存储格式 一条数据称之为record(记录),底层直接以key, value键值对形式序列化到文件中 优点 二进制格式存储,比文本文件更紧凑 支持不同级别压缩(基于record或block压缩) 文件可以拆分和并行处理,适用于MapReduce程序 局限性 二进制

    2024年02月13日
    浏览(21)
  • 不同于Oracle:SEQUENCE的区别

    在使用Oracle数据库SEQUENCE功能时,发现Oracle对边界处理比较奇怪。刚好GreatSQL也支持SEQUENCE,就拿来一起比较一下。 先说结论:GreatSQL 的使用基本和Oracle基本一致,但是对 START WITH 的边界限制有所不同。 本次测试使用数据库的版本号 SEQUENCE 有以下几个常用的参数 参数名 介绍

    2024年04月08日
    浏览(32)
  • A. Sequence with Digits

    输入 输出 42 487 519 528 544 564 588 628         暴力模拟题,看这数据范围,有些人可能会被唬住,以为是高精度或者容易超时,实际上, long long 型最多可以存储10^18次方 ,刚刚掐住这个数据范围点,所以我们直接用 long long 存储最后暴力模拟一遍即可,这里 ai 是 10^18次方,而

    2024年02月07日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包