蓝桥杯2022年第十三届省赛真题-最优清零方案--java语言

2023-11-17

题目链接: https://www.dotcpp.com/oj/problem2689.html

一开始没仔细看题目,以为是自然连续数= =~搞得我还发了篇提问,怪尴尬的= = =

https://ask.csdn.net/questions/7913935?spm=1001.2014.3001.5505

在这里插入图片描述

解题思路

第一次尝试:

一开始我以为可以用Arrays.sort(arr);对元素进行调整,然后怎么也AC不了

package ___2022年省赛Java大学A;

import java.util.Arrays;
import java.util.Scanner;

public class 最优清零方案_AC {
	private static int n,k ;
	private static long arr[];
	private static long ans;
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		k = sc.nextInt();
		arr = new long[(int) n];
		for(int i=0;i<arr.length;i++) {
			arr[i] = sc.nextLong();
		}
		Arrays.sort(arr);
		//System.out.println("排序后的元素:"+Arrays.toString(arr));
		System.out.println(process(arr,k));
	}

	private static long process(long[] arr, int k) {
		long count = 0;
		int m = 0;	
		while(m<=arr.length -k) {
			long min = Integer.MAX_VALUE;
			int index = -1;
			for(int i=m;i<m+k;i++) {
				if(arr[i]<=min) {
					min = arr[i];
					index = i;
				}
			}
			
			for(int i=m;i<m+k;i++) {
				arr[i]-=min;
			}
			count+=min;
			m = index+1;
		}
		long sum = Arrays.stream(arr).sum();
		count+=sum;
		return count;
		// TODO Auto-generated method stub
	}
	

}

在这里插入图片描述

#如图所示,因为没有充会员,看不了测试样例,所以一开始不知道什么原因,(当然了,实际比赛的时候肯定也没有过多的测试样例给你,所以大家千万要细心)

暴露出以下问题:

(1) 答案错误,上述已经提到原因

(2)时间超时 ,,因此我们需要想办法去优化计算复杂度,最好的解决办法就是每次以当前的min值去减少,去求和

AC代码

package ___2022年省赛Java大学A;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 
 * @author Wzi
 *	给定一个长度为 N 的数列 A1, A2, · · · , AN。
 *	现在小蓝想通过若干次操作将这个数列中每个数字清零。	
 *
 *每次操作小蓝可以选择以下两种之一:
	1. 选择一个大于 0 的整数,将它减去 1;
	2. 选择连续 K 个大于 0 的整数,将它们各减去 1。
 *
 */
public class 最优清零方案_编码计算 {
	private static int n,k ;
	private static int arr[];
	//private static long ans;
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		k = sc.nextInt();
		arr = new int[n];
		for(int i=0;i<arr.length;i++) {
			arr[i] = sc.nextInt();
		}
		System.out.println(process(arr,k));
		
	}

	private static  long process(int[] arr, int k) {
		// TODO Auto-generated method stub
		long count = 0;	//通计算了多少次
		int index = 0;	//最初处理位置
		//long ans = 0; //最后用于输出的答案
		long  remind = arr.length;
		while(index <= arr.length -k) {	//小于k则不进行操作了
			long min = Integer.MAX_VALUE;
			int index_way = -1;
			for(int i=index ;i<index+k;i++){	//找出最小值
				if(arr[i] <= min) {
					min = arr[i];
					index_way = i;
				}
			}//for(int i=index ;i<index+k;i++)
			//加速减
			for(int i=index;i<index+k;i++) {
				arr[i]-=min;
			}
			count+=min;
			index=index_way+1;
		}
		
		for(int k1=index;k1<arr.length;k1++) {
			count+=arr[k1];
		}
		return count;
	}//end -private static  long process(int[] arr, int k)
	
		
	
	
}

在这里插入图片描述

参考来源: https://cloud.tencent.com/developer/article/2236442

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯2022年第十三届省赛真题-最优清零方案--java语言 的相关文章

随机推荐

  • android监控view高度变化,Android-获取View宽高的时机

    前言 最近遇到一个bug 问题描述是这样的 启动页需要放置一张广告图 要使这张图在不变形的情况下 等比例缩放 宽度要占满屏幕宽 于是手动计算并设置ImageView需要的缩放比例来对图片进行缩放 该方法触发的时机引发了一些问题 privat
  • ReferenceError: XXX is not defined 错误及解决办法

    ReferenceError XXX is not defined 错误及解决办法 我这里报错是忘记了引入此方法所在的js文件 解决办法 引入所需的js文件 此错误 另外一种情况就是 jQuery引入先后顺序不对 要先引入jQuery文件
  • emmc学习

    1 介绍 1 1 简介 emmc embedded multi media card eMMC的一个明显优势是在封装中集成了一个控制器 它提供标准接口并管理闪存 使得手机厂商就能专注于产品开发的其它部分 并缩短向市场推出产品的时间 这些特点
  • pikachu之文件下载和文件上传

    目录 一 文件下载 1 复制这个下载文件地址 2 尝试去下载这个down nba php 3 目录扫描工具 二 文件上传 1 checkclient 1 利用burp suite 2 关闭js 3 修改页面源代码 2 mime类型验证 3
  • IO多路复用机制详解

    高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型 常见的IO模型有四种 1 同步阻塞IO Blocking IO 即传统的IO模型 2 同步非阻塞IO Non blocking IO 默认创建的socket都是阻塞的 非阻塞IO
  • 机器学习模型融合

    模型融合方式 均值法Averaging 适用于回归类算法 将每个评估器的输出做平均 类似于Bagging中回归的做法 投票法Voting 适用于分类算法 将每个评估器的输出进行投票 类似于Bagging中分类的做法 堆叠法Stacking
  • heapdump文件找相关的键值

    前言 一次做项目遇到heapdump文件 也是第一次碰到所以记录一下过程 步骤 下载heapdump文件是一个 hprof gz后缀的文件 使用MemoryAnalyzer这个工具就可以进行对其中的键值进行分析 工具的安装 下载好Memor
  • C++:主要的关联式容器类型:set

    目录 1 关联式容器 2 键值对 3 树形结构的关联式容器 4 set 5 set的特点 6 set的使用 常用接口的使用 1 insert 2 find 3 erase 4 operator 7 multiset 1 关联式容器 与vec
  • 解决pyqt中mainwindow界面最大化按钮是灰色(不能最大化)的问题

    解决方法 将maximumSize的值设置为16777215x16777215即可使窗口打开时最大化按钮可用 MAIN SIZE MAX QSize 16777215 16777215 self setMaximumSize MAIN SI
  • 系统服务器迁移,应用系统和服务器迁移云

    应用系统和服务器迁移云 内容精选 换一换 公有云通常指第三方供应商为用户提供的能够通过Internet使用的云端基础设施和服务 其核心属性是共享资源服务 华为云是公有云品牌 在SAP系统迁移的过程中 您可以单独使用这些华为云云服务 也可以组
  • Python方便又强大的日志记录器——loguru

    Python方便又强大的日志记录器 loguru Loguru是一个旨在使Python日志记录变得愉快的库 该库通过添加一系列有用的功能来解决标准记录器的警告 从而减少Python日志记录的痛苦 日志记录对每个应用程序都是基本的 它简化了调
  • rosserial_arduino

    rosserial arduino 一级目录 二级目录 三级目录 wiki tutorials 1 安装arduino IDE 2 Installing the Software 2 1 Installing on the ROS work
  • linux charg修改目录,Thinkpad在GUN/linux(ubuntu)下修改电池充电阈值

    详见 http www thinkwiki org wiki Tp smapi 安装tp smapi aptitude install tp smapi dkms modprobe tp smapi 更改充电阈值 设置开始充电阈值 如从 6
  • 02

    1 克隆镜像 前提 centos 7 选择 管理 gt 克隆 选择 下一步 选择 虚拟机中的当前状态 选择 创建完整克隆 设置 虚拟机名称 和 位置 克隆完成界面 2 导入镜像 打开虚拟机 选择对应的克隆文件 导入后的结果 3 网络设置 3
  • 铨顺宏RFID:根据UWB技术性的矿山开采人员精准定位系统

    计划方案环境及总体目标 伴随着智能技术的持续发展趋势 矿山开采生产模式不断创新 翠绿色 绿色生态 智能化慢慢变成煤业的追求完美 煤业智能化系统 智能化针对矿山开采而言十分关键 不但可以产生生产量的提升 还能够协助减少资金投入和产品成本 提高
  • 科技云报道:震惊!4K、8K画质背后,竟然少不了AI的助力

    科技云报道原创 对于视频的画质 我现在最低只能够接受720P 最好是1080p 早五年前 身边就已经有人提出了这样的要求 随着科技的进步 我们进入了一个视频内容快速增长的时代 从社交媒体到在线教育 从直播购物到虚拟会议 视频正逐渐成为主流的
  • Jiu Yuan Wants to Eat【2018焦作网络赛】【树链剖分】

    题目链接 树链剖分学习笔记 可以看这里 这道题还真挺好的 以前不会做 现在想了发现 学过树链剖分之后 剩下的部分就是处理去反那块比较的不容易些了 但是想了一下午 现在还是给我敲出来了 我们主要难处理的就是关于求反 那么怎么处理求反 一开始读
  • antd-select下拉框如何同时获取所选值ID和名字属性

    其中传过去的e为 从antd官网可以看到select组件的onchange属性传参 第一个参数为value 第二个参数可为所选中的那一项的所有信息 其中的props属性内有一个children属性 即存储了所选项的名称
  • JWT快速入门及所需依赖

    目录 1 JWT 1 1什么是JWT 1 2JWT的构成 jwt的头部 payload signature 1 3JWT快速入门案例 2Jwt认证 微服务 2 1微服务下统一权限认证 2 2应用认证 3 无状态的JWT令牌如何实现续签功能
  • 蓝桥杯2022年第十三届省赛真题-最优清零方案--java语言

    题目链接 https www dotcpp com oj problem2689 html 一开始没仔细看题目 以为是自然连续数 搞得我还发了篇提问 怪尴尬的 https ask csdn net questions 7913935 spm