题解 guP4552 IncDec Sequence
这道题是一道差分的题目
差分数组p即p[i]=a[i]-a[i-1]
如果我们把一个区间[l,r]里的数+1,那么我们不难发现p[l]'=a[l]+1-a[l-1]=p[l]+1,p[r+1]'=a[r+1]-(a[r]+1)=p[r+1]-1
即一次将两个p[i]+1 or -1
还有一种情况可以使p[l]+1 or -1
---------------差分数组介绍完毕-------------------------
首先我们看第一小问:输出最少操作次数使所有数相等,即令p[i]==0(i!=1)
我们可以根据之前得到的结论推广:
若 p[2]==1,p[3]==-2,那么我们最少需要两次操作;
若 p[2]==1,p[3]==-2,p[4]==4,那么我们最少需要五次操作;
若 p[2]==1,p[3]==-2,p[4]==4,p[5]==-2,那么我们最少需要五次操作;
......
不难看出,若把原p数组中正数之和表示为a,负数绝对值之和表示为b,那么我们最少需要max(a,b)次操作。
再看第二小题。
题目可以理解为:在一问的条件下,p[1]的值有多少种情况?
无需赘述,我们可以发现,当我们min(a,b)次操作后,数组p中定然只会剩下p[1]与一些同号的数。对于之后的|a-b|次操作,我们可以选择让p[1]变动或不变,这样一来p[1]的值就会有1+max(a,b)种可能的值。
完结撒花qwq~
代码:
#include<bits/stdc++.h>
using namespace std;
long long n,a[101000],p[101000],z,f,ans;
int main()
{cin>>n;for(int i=1;i<=n;i++){scanf("%lld",&a[i]);p[i]=a[i]-a[i-1];}for(int i=2;i<=n;i++){if(p[i]>0)z+=p[i];elsef-=p[i];}long long ans=abs(z-f),an=max(z,f);cout<<an<<"\n"<<1+ans;return 0;
}
转载于:https://www.cnblogs.com/lost-in-tianyi/p/10712149.html
题解 guP4552 IncDec Sequence相关推荐
- BZOJ 3043 IncDec Sequence:反向差分
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3043 题意: 给定一个长度为n的数列a[i],每次可以选择一个区间[l,r],使这个区间内 ...
- IncDec Sequence(codevs 2098)
题目描述 Description 给定一个长度为n的数列{a1,a2...an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一. 问至少需要多少次操作才能使数列中的所有数都一样,并 ...
- [Poetize6] IncDec Sequence
Description 有一个长度为\(n(n\leq 100000)\)的数列,每次可以给一个区间\([l,r]\)加1或者减1.问要多少次操作让整个数列一样,并求出最少操作的前提下,最终得到的数列 ...
- CH - 0304 IncDec Sequence(差分+思维)
题目链接:点击查看 题目大意:给定一个长度为 n(n≤10^5 ) 的数列 {a_1,a_2,-,a_n},每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一.求至少需要多少次操 ...
- 题解-BOI 2004 Sequence
Problem bzoj & Luogu 题目大意: 给定序列\(\{a_i\}\),求一个严格递增序列\(\{b_i\}\),使得\(\sum \bigl |a_i-b_i\bigr|\)最 ...
- P4552-[Poetize6]IncDec Sequence【差分】
正题 题目链接:https://www.luogu.com.cn/problem/P4552 题目大意 给出nnn个数,每次可以选择一个区间加一或减一,求最少操作使得所有数相等,并且求可能的最终序列个 ...
- 解题报告 『[Poetize6]IncDec Sequence(差分)』
原题地址 差分,想到了这个再看看代码应该就很好做了. 代码实现如下: #include <bits/stdc++.h> using namespace std; #define int l ...
- 蓝桥备赛第二周 前缀和
文章目录 前缀和与差分数组 [HNOI2003]激光炸弹 前缀和解法(他又不变,,,前缀和就能搞定吧?) 这种地方出现的错误(部分数据过不去)可能是少个等于之类的边界问题 2021-3-10复习,这里 ...
- 前缀和+差分+ 树状数组
前缀和+差分的理论知识 前缀和相关题: 「USACO16JAN」子共七 Subsequences Summing to Sevens 定理:若两个数相减 mod k == 0,那么这两个数mod k ...
最新文章
- iptables-save和iptables-restore
- 基于Picture Library创建的图片文档库中的上传多个文件功能(upload multiple files)报错怎么解决?...
- iOS中UITextField 使用全面解析
- 解决Adobe Reader安装错误150120
- python 使用raise语句主动抛出异常(Exception)、将异常抛出给上一级
- Teams与OneDrive for Business和SharePoint的关系
- eclipse中查看mysql_eclipse中怎样查看sqlite数据库的表
- python设置默认密码_使用Python生成随机密码的示例分享
- 人情味,让你的内容脱颖而出
- 遍历Map集合的四种方式
- Linux安装Anaconda报错,无法执行二进制文件,可执行文件格式错误
- 如何使用两台无线路由器进行无线桥接(互联)(转)
- 如何使用百数低代码开发平台制作问卷调查表?
- 【WiFi】Wi-Fi 5(802.11ac) 与 Wifi 6 (802.11ax)RF的关键变化
- 2021-08-07 解决安装MacTeX后界面显示法语问题
- 找金币问题/只秤一次找出真假金币在哪个箱子
- 如何获取(GET)一杯咖啡——星巴克REST案例分析
- 14z app测试方法与技术 -软件测试
- 【北亚服务器数据恢复】Infortrend ESDS系列服务器raid6数据恢复
- 如何用Spark进行数据分析
热门文章
- Firefox火狐浏览器安装selenium IDE插件实现自动化脚本录制教程
- 人工智能(4):模型评估
- 良心推荐 一个可以下载各种编程软件(含安装教程)微信公众号!
- 睿爸信奥-【临阵磨枪】练习赛(第一场)- T3
- mastercam9.1安装
- dir what matlab,3_matlab讲义_pps_大学课件预览_高等教育资讯网
- 根据掩码计算主机数量,确定有效主机地址。
- centos 6.5 无线网卡配置(hp mini)
- 做了十年程序员的苏明哲被裁掉的真正原因!
- Data Analyst-junior