当前位置: 首页 > article >正文

11月上海月赛解报告(丙组)T5

线段数

内存限制: 512 Mb时间限制: 1000 ms

题目描述

给定数组 a=[a1,a2,⋯ ,an],Eve 可以执行任意次(可能 0 次)以下操作:

  • 选择 1≤i≤n,令 ai​←ai​+1。

Eve 希望最终数组中任意三个相邻元素之和都是 3 的倍数。

请求出需要达成目标所需的最小操作次数。

输入格式

第一行一个整数 n。

第二行 nn 个整数 a1​,⋯,an​。

输出格式

一行一个整数表示答案。

数据范围

对于 30%30% 的数据,3≤n≤5。

对于 60%60% 的数据,3≤n≤1000。

对于 100%100% 的数据,3≤n≤10^5,1≤ai​≤10^9。

样例数据

输入:

3
135

输出:

0

说明:

1+3+5=9,是 3 的倍数,不需要操作。

输入:

10
2310251271012146

输出:

3

说明:

对 i=4,7,10 分别操作一次。

AC代码
#include<bits/stdc++.h>
using namespace std;
#define in long long
long long n,a[100005],cnt=0,ans=0,b[100005],ma=9e18;
int main(){
  cin>>n;
  for(in i=1;i<=n;i++){
  	cin>>a[i];
  	a[i]=a[i]%3;
  }
  for(int i=0;i<9;i++){
 	cnt=0;
  	in l=i/3,r=i%3;
  	for(int j=1;j<=n;j++)b[j]=a[j];
  	b[1]=(b[1]+l)%3,b[2]=(b[2]+r)%3;
  	for(in j=3;j<=n;j++){
  		cnt+=(3-(b[j-2]+b[j-1]+b[j])%3)%3;
		b[j]=(b[j]+3-(b[j-2]+b[j-1]+b[j])%3)%3;
	//	b[j]%=3;
  		
  	}
  	ma=min(ma,cnt+l+r);
  }
  cout<<ma;
  return 0;
}


http://www.kler.cn/a/392486.html

相关文章:

  • C++模板特化实战:在使用开源库boost::geometry::index::rtree时,用特化来让其支持自己的数据类型
  • HarmonyOS SDK下的实践与探索
  • Scala入门基础(17.1)Set集习题
  • 10款翻译工具实践体验感受与解析!!!!!
  • Gurobi学术版+Anaconda安装步骤
  • 中文书籍对《人月神话》的引用(161-210本):微软的秘密
  • Castle.DynamicProxy的NET Core和Framework的AOP实施
  • 15 个改变世界的开源项目:塑造现代技术的先锋力量
  • 在 .NET 6.0 中创建用于 CRUD 操作的 Web API
  • 上河AI上线ComfyUI工作台
  • 如何使用OpenCV和Python进行相机校准
  • Python+robotframework接口自动化测试实操(超详细总结)
  • 【Docker】Docker基础及docker-compose
  • 传奇996_19——龙岭总结
  • 最全最简单理解迭代器
  • HarmonyOS 如何实现传输中的数据加密
  • 《DiffusionDet: Diffusion Model for Object Detection》ICCV2023
  • Android Mobile Network Settings | APN 菜单加载异常
  • Docker如何以配置文件方式安装nginx
  • WPF应用设置参数存储
  • 【Linux】Linux环境基础开发工具使用(下)
  • C++入门基础知识148—【关于C++ 二元运算符重载】
  • C#语言:现代软件开发的核心工具
  • shardingsphere5.5.1基于spring体系的集成-数据脱敏04
  • uni-app表格带分页,后端处理过每页显示多少条
  • 深入理解接口测试:实用指南与最佳实践5.0(一)