Jzoj4788 序列

Ubuntu20.04下Docker无缝升级实战指南 本文提供了一份在Ubuntu20.04系统上安全、无缝升级Docker的实战指南。文章详细阐述了升级前的版本检查、数据备份等准备工作,逐步演示了通过APT包管理器进行升级或指定版本安装的操作步骤,并强调了升级后的验证与常见问题回滚方案,确保业务容器平稳过渡。 阅读详情

题意:给你a,b两个序列,每次可以在区间[l,r]对每个数加一,求最少的步数使a变成b

注意,整个过程都是在mod 4的意义下的,a,b所有元素的值都在[0,3]之间

我们可以先考虑不存在Mod 4 的情况

我们假设di=max(0,bi-ai)

那么显然,对于一个位置i,我们需要将其操作max(0,di)次

考虑从1开始,我们设f[i]表示将1~i的d清零所需要的最小次数

显然,f[1]=d[1],f[i]=f[i-1]+max(0,d[i]-d[i-1]) (其实这是一个差分的经典应用)

现在我们来考虑Mod 4 的情况,由于有Mod 4 的影响,我们可以将一系列的d[i]变为d[i]+4k

这样在一种情况下会减小答案

若有i<j使得 d[i]-d[i-1]+4<d[j]-d[j-1] 那么,我们就可以将整个[i,j-1]的d都加上4

这样答案就可以减少(d[i]-d[i-1]-dj+dj-1+4)

实际上,我们只需要维护d[i]-d[i-1]=-2和-3的个数即可(-1+4=3 0+4=4显然都不可能)

每次都贪心地去取就可以

#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int n,a[1000010],T;
int aim(){
	scanf("%d",&n); int cnt[4]={0},ans=0;
	for(int i=1;i<=n;++i) scanf("%d",a+i);
	for(int x,i=1;i<=n;++i){
		scanf("%d",&x);
		a[i]=(x-a[i]+4)&3;
	}
	for(int i=1;i<=n;++i) ans+=max(0,a[i]-a[i-1]);
	for(int i=2;i<=n;++i){
		int j=a[i]-a[i-1];
		if(j>0){
			if(cnt[1] && j>1){
				--cnt[1];
				++cnt[j];
				ans-=--j;
			} else if(cnt[2] && j>2){
				--cnt[2];
				++cnt[j];
				ans-=j-2;
			}
		} else ++cnt[j+4];
	}
	printf("%d\n",ans);
}
int main(){ for(scanf("%d",&T);T--;aim()); }

【嵌入式DIY实例-Arduino篇】-脉搏传感器监测脉搏率 (BPM)及可视化 在本文中,我们将使用 Arduino 和脉搏传感器来测量心率 (BPM)。 在文章中,我们将向展示如何使用脉搏传感器测量您的心率(每分钟心跳次数),并在电脑上位机通过Processing来实现心率数据可视化。同时使用LCD16×2 显示屏显示脉搏率 BPM。 该传感器易于使用和操作。 只需将手指放在传感器顶部,它就会测量心跳变化。 阅读详情

相关推荐

uniapp+uniCloud实现微信小程序一键登录

(用户唯一标识),用户登录成功后,开发者服务器可以将openid和session_key保存,生成一个自定义登录态的token令牌响应给微信小程序,通过token可以查询openid和session_key,小程序下次请求只要携带着token就可以证明已经登录。这个API就是获取用户信息,每次请求都会弹出授权窗口(这个可能会不弹,这个要看你的版本,根据版本来定,不懂的可以留下评论),用户同意后会返回。到这里就可以实现微信一键登录了,快去试试吧,有问题可以在评论区留言,我看见会尽我知道的为你解答。

lb2917的博客 2576

jzoj4788 序列

题目给定序列A,B,每一次操作可以让A的i~j这个区间内+1%4,求多少次操作才能让A达到B先求出对于第i个位置从Ai−>BiAi->Bi要做多少次,记作DiDi 如果不考虑模的话,这题就是一个经典的粉刷问题, Ans=∑Di−Di−1|(Di>Di−1)Ans=\sum{D_i-D_{i-1}|(Di>D_{i-1})} 然后我们再考虑模,如果操作次数+4对正确性影响不大,那么我们什么时候才

一位蒟蒻的小博客 610

R语言实战:5分钟搞定相加交互效应分析(逻辑回归/Cox回归/GLMM/GEE全支持)

本文详细介绍了如何利用R语言中的`scitable`包快速实现相加交互效应分析,支持逻辑回归、Cox回归、GLMM和GEE等多种模型。通过自动化计算RERI、AP和SI等指标,大幅提升临床研究和流行病学分析的效率与准确性,特别适合处理多因素联合作用的复杂场景。

fanta的博客 669

【jzoj4788】【序列】

题目大意解题思路显然没有模的时候,后一个减前一个差分,正值加起来即为答案。考虑将一个区间加4,左端点的差分值加4,后端点的后一个的差分值减4,而只有正值对答案有贡献。将前面的差分值用桶存起来,枚举右端点,如果是正值则查找前面的差分值,看是否能通过操作使答案减少。code#include<set> #include<cmath> #include<cstdio> #include<cstring> #

inklutcuah’s blog 553

ISP调试工程师相关面试问题_001

Qualcomm、MTK等ISP pipeline的框架原理及算法原理,还有调试经验。

notgoodenouf的博客 3544

UDS(三)网络层时间参数

网络层定义了N_Ar、N_As、N_Br、N_Bs、N_Cr、N_Cs六个时间参数。 网络层在检测到错误的时间传递至上层使用者 1.当N_As 超时时,即发送方没有及时发送出N_PDU,系统将放弃信息的接收并传递<N_Result> = <N_TIMEOUT_A>的N_USData.comfirm指示 2.当N_Ar超时时,即接收方没有及时发送出N_PDU,系统将放弃信息的接收并传递<N_Result> = <N_TIMEOUT_A>的N_USData.co

weixin_44522306的博客 1万+

【JZOJ4788】序列

【JZOJ4788】题解

sadnohappy 557

Cisco Packet Tracer 7.3免登录技巧:3种方法快速跳过注册界面(附详细截图)

本文针对Cisco Packet Tracer 7.3启动时遇到的登录界面问题,提供了三种合法高效的解决方案。详细介绍了如何利用官方访客模式快速启动、注册思科账号实现一劳永逸登录,以及通过调整本地安装配置优化启动流程,帮助网络学习者与备考者绕过繁琐步骤,快速进入实验环境。

weixin_29305337的博客 737

【NOIP2016提高A组模拟9.17】序列

DescriptionInputOutputSample Input1 5 2 1 3 0 3 2 2 0 1 0Sample Output1Data Constraint然后我们再考虑模,如果操作次数+4对正确性影响不大,那么我们什么时候才需要让某个地方再做4次以达到答案减小的目的呢,不难发现就是这种情况 如果这样的话我们的代价其实就是 左右两边的和 减去 中间的 (假设中间的是相同高度

liangzihao1的博客 646

【数字IC刷题】华为海思数字IC笔试题(3)详细解析版

【数字IC刷题】华为海思数字IC笔试题(3)详细解析版

MoorePlus的博客 2368

智能车图像处理21-进阶篇13--正入十字补线2

这篇文章主要的正入十字补线与1基本相同,主要防止图像中双十字的问题。

taiyuezyh的博客 2028

{题解}[jzoj2573]【NOIP2011模拟9.20】序列

施工中...

FarmerJohn 1063

现代软件开发技术 | 第1章:Spring基础

Spring是一个轻量级Java 开发框架,最早由Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。

知识库搭建ing 454

JZOJ4788. 序列

题目大意 给定两个长度为n的序列A,B。 每次操作,选择A中的一个区间加上1,再对4取模。 求把A变成B的最小操作次数。 T组数据。 Data Constraint n≤100000

Akakii的博客 862

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【JZOJ 4788】 序列

Description Analysis首先求出每个位置的目标移动次数(mod 4) 比赛时想到了很好的思路,因为时间不够没有继续想下去。 后来我和xhm沿着这个想法,并最终想到了正解,同时也是samjia2000大神的方法。 首先对序列做差分,a[i]-=a[i+1] 不考虑升高4,答案为∑max(0,a[i]−a[i−1])\sum max(0,a[i]-a[i-1]) 一次升高操作

LYD729 652

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【JZOJ 4788】序列

Solution把题目抽象一下,就变成了求序列中,每个点可以上升4,要使下降的总和最小, 首先,每个点可以上升多次!!! 当一个区间整体上升的时候,影响的就只有开头和结尾,如果要使答案减小,就要符合: ai−1−ai>aj+4−aj+1a_{i-1}-a_i>a_j+4-a_{j+1} 于是我们可以贪心的做,用did_i表示不等式后面的值等于i的位置有多少个, 每次直

1106

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

[jzoj 4788] 序列 {贪心/桶}

题目 解题思路 我们设d[i]表示a[i]要经过多少次操作后才可到达b[i],设c[i]=d[i]-d[i-1]。那么最朴素的想法答案ans=∑ni=1Max(0,c[i])。但这只是每个数都不会超过自己d[i]的情况,我们还要考虑假设某个数被某个区间包含,后来又多做了4次再次返回自已要求值的情况。显然对于现在的某段区间[i,j],它多做了4次会使c[j]-4,使c[i]+4,那么我们再回想...

Nowed 376

【差分 贪心】JZOJ_4788 序列

题意 思路 求出aia_iai​表示还需多少才能转换成bib_ibi​,把它差分。 如果加的数不超过444,那么答案就为∑i=1nmax(0,ai)\sum_{i=1}^{n}max(0,a_i)∑i=1n​max(0,ai​)。 否则如果让区间(l,r](l,r](l,r]加上4,即al−4,ar+4a_l-4,a_r+4al​−4,ar​+4,那么就要使ar+4&lt;ala_r+4...

GOODPLACE 341

JZOJ 4788. 序列

差分

Luckfort 567

NOIP提高组【JZOJ4788】序列

DescriptionData Constraint我们设d[i]表示a[i]要经过多少次操作后才可到达b[i],设c[i]=d[i]-d[i-1]。那么最朴素的想法答案ans=∑ni=1Max(0,c[i])\sum^{n}_{i=1}{Max(0,c[i])}。但这只是每个数都不会超过自己d[i]的情况,我们还要考虑假设某个数被某个区间包含,后来又多做了4次再次返回自已要求值的情况。显然对于现在

dance in th dark的博客 595

[JZOJ4788] 【NOIP2016提高A组模拟9.17】序列

题目 描述 题目大意 一个序列,每次可以使一段区间内的所有数加一(模四)。 问最少的操作次数。 思考历程 一看这题目,诶,这不就是那道叫密码锁的题目吗? 然后随便打一打,样例过了,就再也没有思考这一题。 正解 其实我的想法完全错了。 因为这题只能加,不能减啊! 于是就得考虑另一个方法。 题目可以转成这样的问题:给你一个数列,你可以预先给其中的数加四,然后每次对一个区间进行减一操作,问最...

A1847225889的博客 376

Jzoj P4788 序列___差分+贪心

题目大意: 分析: 设numinum_inumi​表示从aia_iai​到bib_ibi​至少需要操作多少次(第一次到bibibi所需次数) 对numinum_inumi​从后往前进行差分,di=numi−numi+1d_i=num_{i}-num_{i+1}di​=numi​−numi+1​ 那么我们可以发现,对于将所有的numinum_inumi​都变成000(aaa序列变成bbb序列),所...

生如夏花之绚烂 299

jzoj4788-[NOIP2016提高A组模拟9.17]序列【差分,贪心】

正题 题目大意 一个序列AAA可以每次选择一段区间(Ai+1)%4(i∈[l..r])(A_{i}+1)\%4(i\in [l..r])(Ai​+1)%4(i∈[l..r])。求最少次数使其变成BBB序列。 解题思路 先计算出每个数字最少加多少可以变成目标数字记录入aaa数组。 然后若不考虑一个数要取模多次的话答案就是 ∑i=2nmax⁡{ai−ai−1,0}\sum_{i=2}^n \max...

QuantAsk 576

JZOJ 4788. 【NOIP2016提高A组模拟9.17】序列

233题目:题意:分析:代码: 题目: 传送门 题意: 给出AAA、BBB两个序列,有将l—rl—rl—r区间内每个数先+1+1+1再%4\%4%4的操作,求将AAA变为BBB所要的最少步数 分析: 先出去模数操作,那么就是一道简单的差分约束,答案为∑i=1np[i]−p[i−1]\sum_{i=1}^np[i]-p[i-1]∑i=1n​p[i]−p[i−1] 对于有模数时,我们考虑到对于区...

qq_35786326的博客 340
上一篇: 一些基础算法的模板(持续更新)
下一篇: Jzoj4789 货物运输
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值