JZOJ4788. 序列
题目大意
给定两个长度为 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。维护一个桶,再贪心地取即可。
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. 序列相关推荐
- [JZOJ4788] 【NOIP2016提高A组模拟9.17】序列
题目 描述 题目大意 一个序列,每次可以使一段区间内的所有数加一(模四). 问最少的操作次数. 思考历程 一看这题目,诶,这不就是那道叫密码锁的题目吗? 然后随便打一打,样例过了,就再也没有思考这一题 ...
- 判断某数组是不是二叉树的前序遍历序列 python递归
code class Solution:def VerifySquenceOfBST(self, sequence):# write code hereif len(sequence) <= 0 ...
- pytorch中如何处理RNN输入变长序列padding
一.为什么RNN需要处理变长输入 假设我们有情感分析的例子,对每句话进行一个感情级别的分类,主体流程大概是下图所示: 思路比较简单,但是当我们进行batch个训练数据一起计算的时候,我们会遇到多个训练 ...
- PyTorch: 序列到序列模型(Seq2Seq)实现机器翻译实战
版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢!http://blog.csdn.net/m0_37306360/article/details/79318644 简介 在这个项目中,我们 ...
- 支持向量机SVM序列最小优化算法SMO
支持向量机(Support Vector Machine)由V.N. Vapnik,A.Y. Chervonenkis,C. Cortes 等在1964年提出.序列最小优化算法(Sequential ...
- LeetCode简单题之最长特殊序列 Ⅰ
题目 给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列 .如果不存在,则返回 -1 . 「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列) ...
- GStreamer 1.0 series序列示例
GStreamer 1.0 series序列示例 OpenEmbedded layer for GStreamer 1.0 这layer层为GStreamer 1.0框架提供了非官方的支持,用于Ope ...
- 微调BERT:序列级和令牌级应用程序
微调BERT:序列级和令牌级应用程序 Fine-Tuning BERT for Sequence-Level and Token-Level Applications 为自然语言处理应用程序设计了不同 ...
- 【剑指Offer】23、二叉搜索树的后序遍历序列
题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路: 对于后续遍历序列,序 ...
最新文章
- attachEvent 与addEventListener到底有什么区别呢?
- 了解万用表历史,万用表的前世今生
- Dubbo 3.0 前瞻之对接 Kubernetes 原生服务
- Elasticsearch 使用copy_to组合字段进行查询
- java smp_什么是SMP系统
- CodeIgniter中URL含有中文字符串的解决方案
- VB案例:打印输出图形与文本
- python解释器使用函数可以进入帮助系统_使用help()命令可以进入帮助系统。
- Python爬取王者荣耀手游中的游戏英雄角色
- linux+多个字符分割字符串数组中,怎样通过特定的分隔符将字符串分割成数组
- 【安装配置】DirectAdmin安装Nginx方法
- 网站建设流程-面向公司
- 史上最详细清样/校样(Proof)处理流程--Hindawi(二)
- Opencv创建纯色图
- 笔记本共享网络给台式机
- 2021-08-11 TM32F103 Buffer FatFs 文件系统移植
- java 序列化 枚举_java基础-枚举序列化
- notify验签失败及其原因
- Python+Scrapy爬取腾讯新闻首页所有新闻及评论
- 第八届开源中国开源世界高峰论坛--开放.互联.移动的新时代