【JZOJ 4788】序列

[学习笔记]Esp32 + 4G模块,随身wifi,ppp拨号上网 Esp32S3 + 4G模块制作随身WIFI教程 阅读详情

Description

这里写图片描述

Solution

把题目抽象一下,就变成了求序列中,每个点可以上升4,要使下降的总和(∑max(0,a[i−1]−a[i]))最小,
首先,每个点可以上升多次!!!
当一个区间整体上升的时候,影响的就只有开头和结尾,如果要使答案减小,就要符合:

ai−1−ai>aj+4−aj+1

于是我们可以贪心的做,用di表示不等式后面的值等于i的位置有多少个,
每次直接找到一个符合不等式的,使答案上升最小的i,加到答案上去,再di减一;

复杂度:O(n)

Code

#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
const int N=100500;
int read(int &n)
{
    char ch=' ';int q=0,w=1;
    for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar());
    if(ch=='-')w=-1,ch=getchar();
    for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;
}
int n,m,ans;
int a[N],F[10];
int main()
{
    int q,_;
    read(_);
    while(_--)
    {
        read(n);
        fo(i,1,n)read(a[i]);
        fo(i,1,n)a[i]=(read(q)-a[i]+4)%4;
        F[0]=F[1]=F[2]=F[3]=0;
        a[n+1]=0;ans=a[n];
        fod(i,n,2)
        {
            F[a[i]+4-a[i+1]]++;
            fo(j,1,a[i-1]-a[i]-1)if(F[j])a[i]+=4,ans+=j,F[j]--;
            ans+=max(0,a[i-1]-a[i]);
        }
        printf("%d\n",ans);
    }
    return 0;
}
Vue2 - 最新详细实现网站内部打开预览 office 全套附件,在页面弹窗内解析预览 word文档、excel电子表格、ppt演示文稿(docx|xlsx|pptx|pdf|txt等文件)详细代码 vue2,nuxt2,office,文档,文件,查看预览,弹框预览,下载预览,如何预览pdf文档,打开查看,office全套文档,实现在线预览文件,小程序内预览word文件,手机h5移动端网页,nuxt文档在线预览,预览office最好用的插件,下载查看,Office在线预览,vue-office,vue如何使用vue-office教程示例,word文档,ppt,exce表格,预览电子文件,文档无法解析,打不开,报错,失效,保存下载,vue前端预览并下载doc、xls、pdf、txt及图片,vue2中预览p 阅读详情

相关推荐

[官方培训]19-物理模拟 Epic 肖月 笔记

物理引擎全局解算精度的设置,帧率越高,子步越多得到的模拟结果就越精确。引擎默认情况下是以变化的帧率运行的,但是对于Chaos物理引擎来说。一般子步越小,帧率越固定,效果就会更好更稳定一些。图示的分步选项就是依据下方的最长子步时长和最大步数对动态变化的帧率,进一步的做拆分来保证物理效果。对于影视项目建议都开启分步选项。红色框内有三个迭代次数的设置,这是Chaos基于位置的约束求解算法专用的一个设置,可以简单理解为迭代次数越高,当前帧一个子步内得到的结果就越精确。

Tcohneyn的博客 1545

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

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

liangzihao1的博客 646

MDK5 Debug调试方法总结

MDK5 Debug调试方法总结

m0_70748084的博客 2万+

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的博客 343

Uibot RPA中级认证实战:手把手教你用流程创造者搞定客户数据迁移(附验证码容错技巧)

本文详细介绍了Uibot RPA中级认证实战中的客户数据迁移工程化解决方案,特别针对验证码容错技巧和动态表格处理等核心挑战。通过环境准备、登录模块设计、数据提取技术及容错体系的系统讲解,帮助RPA实施工程师掌握高效稳定的自动化流程开发方法,提升企业数据迁移效率。

weixin_30505225的博客 227

ESP32-S3驱动PCA9685模块:I2C扩展16路舵机控制实战指南

本文提供了ESP32-S3通过I2C总线驱动PCA9685模块扩展16路PWM输出的完整实战指南。详细解析了PCA9685模块原理、硬件连接、I2C地址配置,并给出了核心驱动代码与角度控制函数,帮助开发者解决微控制器PWM引脚不足的问题,轻松实现多路舵机控制。

weixin_32005771的博客 517

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 579

从SC7A20数据手册到代码:一步步搞定加速度值读取与换算(避坑指南)

本文详细解析了SC7A20三轴加速度传感器的数据手册,从寄存器配置到原始数据读取,再到加速度值的换算方法。通过代码示例和避坑指南,帮助开发者准确实现加速度值的读取与换算,适用于嵌入式开发和运动检测应用。

weixin_26878995的博客 583

4.23 GDOI赛前模拟 总结

这次比赛真的是“大翻车”! 首先是因环境的改变,整个人很不好,甚至是影响到了发挥,

933

QT使用openssl实现RSA加解密

使用openssl生成公私钥,随后用QT对相应的信息进行RSA加解密

weixin_42098322的博客 3867

基于YOLOv8的野生菌菇检测、识别与分类系统

YOLOv8是YOLO系列模型的最新版本,继承了YOLO系列高效、精确的特点。YOLOv8采用了新的网络架构,并优化了推理速度和检测精度。与传统的目标检测算法(如Faster R-CNN)不同,YOLO模型通过一次前向传播同时完成目标定位与分类,因而具有非常高的计算效率。

YOLO 1284

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

题目描述 输入 输出 样例输入 1 5 2 1 3 0 3 2 2 0 1 0 样例输出 1 数据范围 解法 考虑没有模的情况,问题就仅仅只是简单的差分问题(广告铺设): 设r[i]是第i位需要加的次数,令q[i]=r[i+1]−r[i]; 则ans=sigma{max(q[i],0)}。 回到原问题; 现在先求出每一位...

weixin_30706691的博客 193

基于深度学习的茶叶等级检测识别系统:YOLOv10 + UI界面 + 数据集

YOLOv10是YOLO系列的最新版本,继承了YOLO模型的优点,并对速度和精度进行了优化。YOLOv10在目标检测中使用卷积神经网络(CNN)作为基础,通过改进网络结构和优化训练策略,实现了在更低的延迟下进行高精度的目标检测。本文详细介绍了基于YOLOv10的茶叶等级检测与识别系统的设计与实现过程。我们从数据集准备、模型训练与推理、UI界面设计等多个方面进行了详细讲解,并给出了相应的代码实现。通过本系统,我们可以高效地自动检测茶叶的等级,并通过UI界面直观地展示结果。

YOLO 764

Jzoj4788 序列

题意:给你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的...

dianning8393的博客 167

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

JZOJ4788. 序列

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

Akakii的博客 863

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【jzoj4788】【序列】

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

inklutcuah’s blog 556

【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 653

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

【JZOJ4788】序列

【JZOJ4788】题解

sadnohappy 561

[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 379

【差分 贪心】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 344

JZOJ 4788. 序列

差分

Luckfort 569

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

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

A1847225889的博客 377

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的博客 598
上一篇: 【JZOJ 4787】数格子
下一篇: 【JZOJ 4782】Math
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值