题目大意

给定两个长度为 n n的序列A,BA,B。
每次操作,选择 A A中的一个区间加上1,再对4取模。
求把AA变成 B B的最小操作次数。
TT组数据。

Data Constraint
n≤100000 n\leq100000

题解

首先可以求出每个 Ai A_i变为 Bi B_i所需的最少操作次数,记为 ai a_i。
现在问题转化为,求将这个序列 a a全部变为0的最少操作次数。
那么Ans=max{ai−ai−1,0}Ans=max\{a_i-a_{i-1},0\}
但是,可能会有 ai+4 a_i+4使得答案更优。
假设存在一个位置 j j满足aj−aj−1+4<ai−ai−1a_j-a_{j-1}+4。那么我们的答案就可以减去 ai−ai−1−(aj−aj−1+4) a_i-a_{i-1}-(a_j-a_{j-1}+4),这实际上相当于是将 [j,i−1] [j,i-1]这一个区间的都 a a加上4。维护一个桶,再贪心地取即可。

时间复杂度:O(n)O(n)

SRC

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std ;#define N 100000 + 10int A[N] , a[N] , tax[5] ;
int T , n , ans ;int main() {scanf( "%d" , &T ) ;while ( T -- ) {ans = 0 ;memset( tax , 0 , sizeof(tax) ) ;scanf( "%d" , &n ) ;for (int i = 1 ; i <= n ; i ++ ) scanf( "%d" , &A[i] ) ;for (int i = 1 ; i <= n ; i ++ ) {int B ;scanf( "%d" , &B ) ;a[i] = (B - A[i] + 4) % 4 ;ans += max( a[i] - a[i-1] , 0 ) ;}for (int i = 2 ; i <= n ; i ++ ) {int now = a[i] - a[i-1] ;if ( now > 0 ) {if ( tax[1] && now > 1 ) tax[1] -- , tax[now] ++ , ans -= now - 1 ;else if ( tax[2] && now > 2 ) tax[2] -- , tax[now] ++ , ans -= now - 2 ;} else tax[now+4] ++ ;}printf( "%d\n" , ans ) ;}return 0 ;
}

以上.

JZOJ4788. 序列相关推荐

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

    题目 描述 题目大意 一个序列,每次可以使一段区间内的所有数加一(模四). 问最少的操作次数. 思考历程 一看这题目,诶,这不就是那道叫密码锁的题目吗? 然后随便打一打,样例过了,就再也没有思考这一题 ...

  2. 判断某数组是不是二叉树的前序遍历序列 python递归

    code class Solution:def VerifySquenceOfBST(self, sequence):# write code hereif len(sequence) <= 0 ...

  3. pytorch中如何处理RNN输入变长序列padding

    一.为什么RNN需要处理变长输入 假设我们有情感分析的例子,对每句话进行一个感情级别的分类,主体流程大概是下图所示: 思路比较简单,但是当我们进行batch个训练数据一起计算的时候,我们会遇到多个训练 ...

  4. PyTorch: 序列到序列模型(Seq2Seq)实现机器翻译实战

    版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢!http://blog.csdn.net/m0_37306360/article/details/79318644 简介 在这个项目中,我们 ...

  5. 支持向量机SVM序列最小优化算法SMO

    支持向量机(Support Vector Machine)由V.N. Vapnik,A.Y. Chervonenkis,C. Cortes 等在1964年提出.序列最小优化算法(Sequential ...

  6. LeetCode简单题之最长特殊序列 Ⅰ

    题目 给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列 .如果不存在,则返回 -1 . 「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列) ...

  7. GStreamer 1.0 series序列示例

    GStreamer 1.0 series序列示例 OpenEmbedded layer for GStreamer 1.0 这layer层为GStreamer 1.0框架提供了非官方的支持,用于Ope ...

  8. 微调BERT:序列级和令牌级应用程序

    微调BERT:序列级和令牌级应用程序 Fine-Tuning BERT for Sequence-Level and Token-Level Applications 为自然语言处理应用程序设计了不同 ...

  9. 【剑指Offer】23、二叉搜索树的后序遍历序列

      题目描述:   输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同.   解题思路:   对于后续遍历序列,序 ...

最新文章

  1. attachEvent 与addEventListener到底有什么区别呢?
  2. 了解万用表历史,万用表的前世今生
  3. Dubbo 3.0 前瞻之对接 Kubernetes 原生服务
  4. Elasticsearch 使用copy_to组合字段进行查询
  5. java smp_什么是SMP系统
  6. CodeIgniter中URL含有中文字符串的解决方案
  7. VB案例:打印输出图形与文本
  8. python解释器使用函数可以进入帮助系统_使用help()命令可以进入帮助系统。
  9. Python爬取王者荣耀手游中的游戏英雄角色
  10. linux+多个字符分割字符串数组中,怎样通过特定的分隔符将字符串分割成数组
  11. 【安装配置】DirectAdmin安装Nginx方法
  12. 网站建设流程-面向公司
  13. 史上最详细清样/校样(Proof)处理流程--Hindawi(二)
  14. Opencv创建纯色图
  15. 笔记本共享网络给台式机
  16. 2021-08-11 TM32F103 Buffer FatFs 文件系统移植
  17. java 序列化 枚举_java基础-枚举序列化
  18. notify验签失败及其原因
  19. Python+Scrapy爬取腾讯新闻首页所有新闻及评论
  20. 第八届开源中国开源世界高峰论坛--开放.互联.移动的新时代

热门文章

  1. 计蒜客T1005输出字符三角形
  2. 解决:win10下修改mac地址的方法
  3. 国家开放大学2021春2623中医药学概论题目
  4. tws蓝牙耳机哪个牌子好?2022蓝牙耳机排行榜
  5. java下载压缩包文件zip
  6. 数据工具sqoop用法之mysql与hive数据导入导出
  7. 都快2021年了,居然还有数据分析师不会MECE
  8. 添加或修改Kindle图书封面
  9. Application.DoEvent使用
  10. 【python】eclipse+Pydev中import报错Unused import解决方案