P4552-[Poetize6]IncDec Sequence【差分】
正题
题目链接:https://www.luogu.com.cn/problem/P4552
题目大意
给出nnn个数,每次可以选择一个区间加一或减一,求最少操作使得所有数相等,并且求可能的最终序列个数。
解题思路
在差分数组上操作,那么操作变为将差分数组上一个数+1+1+1且一个数−1-1−1(当然当l=1l=1l=1或r=nr=nr=n时就是只改变一个数)。所以最少操作数就是正数的和和负数的绝对值和的最大值。
序列种数,假设正数和zzz大于负数和fff,那么其实对于f∼zf\sim zf∼z这个范围内的我们都可以选择是让l=1l=1l=1来修改或者r=nr=nr=n来修改,所以个数和就是abs(f−z)+1abs(f-z)+1abs(f−z)+1
codecodecode
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
ll n,a[1100000],z,f;
int main()
{scanf("%lld",&n);for(ll i=1;i<=n;i++){scanf("%lld",&a[i]);ll x=a[i]-a[i-1];if(i==1)continue;z+=(x>0)*x;f-=(x<0)*x;}printf("%lld\n%lld",max(z,f),abs(z-f)+1);
}
P4552-[Poetize6]IncDec Sequence【差分】相关推荐
- 解题报告 『[Poetize6]IncDec Sequence(差分)』
原题地址 差分,想到了这个再看看代码应该就很好做了. 代码实现如下: #include <bits/stdc++.h> using namespace std; #define int l ...
- [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],使下标在这个区间内的数都加一或者都减一.求至少需要多少次操 ...
- 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],使这个区间内的数都加一或者都减一. 问至少需要多少次操作才能使数列中的所有数都一样,并 ...
- 题解 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[ ...
- 前缀和+差分+ 树状数组
前缀和+差分的理论知识 前缀和相关题: 「USACO16JAN」子共七 Subsequences Summing to Sevens 定理:若两个数相减 mod k == 0,那么这两个数mod k ...
- 正睿OI补题(递归与递推,前缀和与差分)
目录: P1255 数楼梯 P4552 [Poetize6] IncDec Sequence P2280 [HNOI2003]激光炸弹 P1350 车的放置 P1255 数楼梯 数楼梯 - 洛谷 递推 ...
- 基础算法——基本思想
一.枚举:通过从可能的集合中枚举答案,判断题目的条件是否成立. 1.确定枚举的范围,减少枚举的空间. 2.选择合适的枚举顺序. 二.构造:从形式上来看,问题的答案往往具有某种规律性,使得在问题规模迅速 ...
最新文章
- mxnet deepspeech网络结构打印
- BTree,B-Tree,B+Tree,B*Tree
- Linux基础系列(六)Linux系统定时任务Crond
- 新项目新工作空间新仓库新setting文件
- AIR720串口2收发数据问题
- Java GregorianCalendar computeTime()方法与示例
- Spring MVC 安全示例
- 用事件驱动编程解救臃肿的代码
- ios 企业证书 ipa 重新签名发布
- 基于matlab的谱估计,基于MATLAB的功率谱估计实验.doc
- 15款最佳的响应式 Web 设计测试工具
- Excel 2010 VBA 入门 126 批量设置控件属性
- Kali系统安装Visual Studio Code
- FFmpeg —— 为视频添加文字水印(完美解决中文乱码,无需编译)
- 当你对未来迷茫的时候,请打开这个锦囊
- 【独行秀才】macOS Big Sur 11.6.5正式版(20G517)原版镜像
- response.buffer用法
- 改变el-input框的样式(去掉边框),及scoped实现原理
- flutter 保存图片或者视频到相册
- 通过虚拟机下载Debian全量镜像,并保存至本地
热门文章
- docker 启动mysql root用户_Docker-Compose搭建Wordpress博客系统
- python3默认的代码编码是什么-Python3 到底什么是字符编码
- java读取图片缩略方法_java 图片缩略图的两种方法
- yml php,使用 docker-compose.yml 快速搭建php开发环境
- 用户登录查全表好还是用用户名好_外贸人/货代人不要为海运难过了:请看如何查运价和调配舱位解决缺箱!...
- org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the
- 69. Sqrt(x)010(二分法求解+详解注释)
- [JavaWeb-MySQL]SQL基本概念,通用语法,分类
- [蓝桥杯2017初赛]跳蚱蜢-map标记+bfs+环形数组
- java写dnf外掛_dnf卡盟_Java的泛型详解(一)