分蛋糕+中间数

2023-05-16

 

 

问题描述

  小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k
  请问当小明的蛋糕分完时,总共有多少个朋友分到了蛋糕。

输入格式

  输入的第一行包含了两个整数n, k,意义如上所述。
  第二行包含n个正整数,依次表示a1, a2, …, an

输出格式

  输出一个整数,表示有多少个朋友分到了蛋糕。

样例输入

6 9
2 6 5 6 3 5

样例输出

3

样例说明

  第一个朋友分到了前3块蛋糕,第二个朋友分到了第4、5块蛋糕,第三个朋友分到了最后一块蛋糕。

评测用例规模与约定

  对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 10000,1 ≤ ai ≤ 1000。 

 

解题过程:最开始把题给看错了,我给当成了把重量最小的优先给,然后怎么写都是0分,下次一定要看清楚题目要求。整体思路将蛋糕重量存入数组,然后定义一个新数组用于每次蛋糕重量加和,判断当cake重量大于等于k的时候,就把cake赋值给数组b,要求是有几个人分到了蛋糕,就判断b中有多少元素大于0,然后输出。第一次练习给的50分,然后百思不得其解,算法过程很清晰啊,运行也完全没有问题啊,为啥是50分,然后。。。。我把数组大小定义从100改到10001,然后就100分了,真的是醉了;

 

package ccf;
import java.util.*;
public class Cake {
public static void main(String[] args) {
	Scanner in=new Scanner(System.in);
	int n=in.nextInt();
	int k=in.nextInt();
	int[] a=new int[10001];
	for(int i=0;i<n;i++) {
		a[i]=in.nextInt();
	}
	int cake=0;
	int j=0;
	int[] b=new int[10001];
	 for(int i=0;i<n;i++) {
		 if(cake<k) {
			 cake+=a[i];
		 }
		 else if(cake>=k){
			 b[j]=cake;
			 j++;
			 cake=0;
			i--;
		 }
		 if(i==(n-1)){
			 b[j]=cake;
		 }
	 }
	 int count=0;
	 for(int i=0;i<n;i++) {
		 if(b[i]>0) {
			 count++;
		 }
	 }System.out.println(count);
}
}

特别说明i--的作用,因为是在for循环里面,判断条件不满足的时候就直接进行下一循环了,而当前的a[i]没有使用,所以使i--;

 

问题描述

  在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。
  给定一个整数序列,请找出这个整数序列的中间数的值。

输入格式

  输入的第一行包含了一个整数n,表示整数序列中数的个数。
  第二行包含n个正整数,依次表示a1, a2, …, an

输出格式

  如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。

样例输入

6
2 6 5 6 3 5

样例输出

5

样例说明

  比5小的数有2个,比5大的数也有2个。

样例输入

4
3 4 6 7

样例输出

-1

样例说明

  在序列中的4个数都不满足中间数的定义。

样例输入

5
3 4 6 6 7

样例输出

-1

样例说明

  在序列中的5个数都不满足中间数的定义。

评测用例规模与约定

  对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ ai ≤ 1000。

解题思路:分别构建两个函数用于计算大于某个数的整数个数和小于某个数的整数个数,如果满足相等条件,则将这个数存进一个新数组,最后输出时需要加一个判断语句用于判断新数组中是否有重复元素,若有则不输出; 

package ccf;

import java.util.Scanner;

public class Number {
public static int Big_num(int[] a,int x,int n) {
	int count=0;
	for(int i=0;i<n;i++) {
		if(a[i]>a[x])
			count++;
	}
	return count-1;
}
public static int Little_num(int[] a,int x,int n) {
	int count=0;
	for(int i=0;i<n;i++) {
		if(a[i]<a[x])
			count++;
	}
	return count-1;
	
}
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int[] arr=new int[n];
		int[] x=new int [n];
		int j=0;
		for(int i=0;i<n;i++)
			arr[i]=in.nextInt();
		for(int i=0;i<n;i++) {
		if(Big_num(arr,i,n)==Little_num(arr,i,n)) {
			x[j]=arr[i];
		    j++;
		  }
		}
		if(x[0]==0)
			System.out.println(-1);
		else {
			out:for(int i=0;i<n;i++) {
			for(int k=i+1;k<n;k++) {
				if(x[k]==x[i])
					i++;
			}
			if(x[i]==0)
				break out;
				System.out.print(x[i]);
		}
		}

	}

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

分蛋糕+中间数 的相关文章

  • 网络篇-传输控制协议TCP

    TCP协议 传输控制协议 xff08 TCP xff0c Transmission Control Protocol xff09 用一句话概括的话 xff0c 它是一种面向连接的 可靠的 基于字节流的传输层通信协议 TCP xff08 传输
  • 阻塞队列-BlockingQueue

    对于Queue而言 xff0c BlockingQueue是主要的线程安全的版本 xff0c 具有阻塞功能 xff0c 可以允许添加 删除元素被阻塞 xff0c 直到成功为止 xff0c blockingqueue相对于Queue而言增加了
  • 线程池-ThreadPoolExecutor

    如果并发的线程数量很多 xff0c 并且每个线程都是执行一个时间很短的任务就结束了 xff0c 这样频繁创建线程就会大大降低系统的效率 xff0c 因为频繁创建线程和销毁线程需要时间 那么有没有一种办法使得线程可以复用 xff0c 就是执行
  • MySQL索引

    基础知识 索引是创建在表上的 xff0c 对数据库表中一列或多列的值进行排序的一种结构 xff0c 可以提高查询的速度 通俗的来说 xff0c 数据库中存储的数据比作字典的话 xff0c 索引就相当于是字典中的目录 如果没有索引 xff0c
  • ThreadPoolExecutor任务提交与停止流程及底层实现

    ThreadPoolExecutor任务提交 executor任务提交流程 通过查看源码可知 xff0c JUC下的Excutor接口仅提供了一个可执行方法executor public interface Executor Execute
  • RoboMaster步兵机器人简介

    RoboMaster步兵机器人简介 湖北工业大学 蔡饶 如下图所示 xff0c 设计的是一个基于麦克纳姆轮的四轮全向越障平台 xff0c 纵臂式独立悬挂 xff0c 搭载两轴云台和弹丸发射机构 xff0c 是大疆承办的RoboMaster机
  • makefile 完美教程

    简介 Makefile 是和 make 命令一起配合使用的 xff0c 很多大型项目的编译都是通过 Makefile 来组织的 我建立工程的方法有以下三点 xff1a 1 makefile xff1a 优点 xff1a 使用非常广泛 xff
  • Arrays与Collection中自定义Comparator接口配合lambda实现自定义sort

    问题 刷到一个算法题需要拼接数字组成一个最大数 xff0c 基本思想是高位比较 xff0c 相等比较下一位 xff0c 然后根据大小先拼接大的 xff0c 再拼接小的 xff0c 但是发现当存在多个数字高位相同时面临一个问题 xff0c 比
  • SpringBoot2常见问题总结帖

    1 启动Springboot主程序类后报错This application has no explicit mapping for error so you are seeing this as a fallback 解决办法 xff1a
  • 设计模式-五大创建型模式概念与实现

    设计模式 xff08 Design pattern xff09 代表了最佳的实践方案 xff0c 可以说它是一套被反复使用的 多数人知晓的 经过分类编目的 代码设计经验的总结 xff0c 通常被有经验的面向对象的软件开发人员所采用 Desi
  • 雪花算法原理及实现

    背景 分布式高并发的环境下 xff0c 最常见的就是每年双十一的十二点 xff0c 大量用户同时抢购同一商品 xff0c 毫秒级的时间下可能生成数万个订单 xff0c 此时确保生成订单ID的唯一性变得至关重要 此外 xff0c 在秒杀环境下
  • Nacos注册中心-服务注册、分级存储与配置管理

    项目代码 xff1a resumebb springcloud nacos 码云 开源中国 gitee com Nacos注册中心 SpringCloudAlibaba 推出了一个名为 Nacos 的注册中心 xff0c 在国外也有大量的使
  • Feign远程调用-自定义配置与性能优化

    介绍 利用RestTemplate发起远程调用的代码 xff1a String url 61 34 http userservice user 34 43 order getUserId User user 61 restTemplate
  • Ribbon负载均衡

    Ribbon介绍 Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具 xff0c 它基于Netflix Ribbon实现 通过Spring Cloud的封装 xff0c 可以让我们轻松地将面向服务的REST
  • RabbitMQ消息队列

    同步异步通讯 微服务间通讯有同步和异步两种方式 同步通讯 xff1a 就像打电话 xff0c 需要实时响应 异步通讯 xff1a 就像发邮件 xff0c 不需要马上回复 两种方式各有优劣 xff0c 打电话可以立即得到响应 xff0c 但是
  • Spring Boot集成Spring Security

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架 它提供了一组可以在Spring应用上下文中配置的Bean xff0c 充分利用了Spring IoC xff0c DI xf
  • 超分辨重建-Bicubic双三次线性插值opencv实现

    论文实验中经典方法Bicubic的Python实现 使用时更改文件夹 保存路径 重建倍数即可 import os import argparse import cv2 parse args parser 61 argparse Argume
  • opencv_contrib aruco源码

    https github com opencv opencv contrib tree master modules 最近使用了aruco模块 想看看aruco的源码是怎样实现的 在opencv源码中一直没找到aruco 原来 他隐藏在op
  • HTTP/WEB中常见的状态码大全

    HTTP 状态码分类 HTTP 状态码由三个十进制数字组成 xff0c 第一个十进制数字定义了状态码的类型 响应分为五类 xff1a 信息响应 100 199 成功响应 200 299 重定向 300 399 客户端错误 400 499 服
  • 低质量图像超分算法 SwinIR: Image Restoration Using Swin Transformer

    论文名称 xff1a SwinIR Image Restoration Using Swin Transformer 论文地址 xff1a https arxiv org abs 2108 10257 代码仓库 xff1a https gi

随机推荐

  • volatile关键字详解

    volatile的作用 volatile是一个轻量级的synchronized xff0c 一般作用于变量 xff0c 在多线程开发中保证了内存的可见性 相比于synchronized关键字 xff0c volatile关键字的执行成本更低
  • 矩阵连乘-动态规划

    xfeff xfeff 问题 xff1a 给定n个矩阵 xff1a A1 A2 An xff0c 其中Ai与Ai 43 1是可乘的 xff0c i 61 1 xff0c 2 xff0c n 1 确定计算矩阵连乘积的计算次序 xff0c 使得
  • 流水作业调度-算法设计

    问题描述 xff1a 算法描述 xff1a 具体代码 xff1a include lt stdio h gt include lt iostream gt using namespace std class Jobtype public i
  • 动态规划解决01背包问题

    问题描述 xff1a 简单的说就是容量为c的背包 xff0c 有n个物品 xff0c 物品i的重量为wi xff0c 其价值为vi xff0c 问要如何选择装入物品使得背包中物品总价值最大 xff1f xff08 在选择装入背包的物品时 x
  • 石子合并问题

    问题描述 xff1a 在一个圆形操场的四周摆放着n堆石子 xff0c 现在要将石子有次序的合并成一堆 xff0c 规定每次只能选取相邻的两堆石子合并成一堆新的一堆 xff0c 并将新的一堆石子数记为此次合并的得分 xff0c 要求设计一个算
  • 类与对象

    1 编写一个代表三角形的类 xff0c 其中三条边为三角形的属性 xff0c 并且封装有求三角形的面积和周长的方法 分别针对三条边为3 4 5 和7 8 9的两个三角形进行测试 程序代码 xff1a package ex5 public c
  • 抽象类与接口

    1 定义一个接口 xff0c 其中包含一个displa 方法用于显示信息 xff1a 通知类 xff0c 汽车类 xff0c 广告类 xff0c 均要实现该接口显示 通知内容 xff0c 汽车油量 和 广告信息 程序代码 xff1a pub
  • ArduSub SITL Ubuntu mavros环境搭建

    第一章 ArduSub SITL Ubuntu环境搭建 作者 xff1a 张玉梅 zhangym 64 pcl ac cn 1 1 安装过程 第一步 xff1a http ardupilot org dev docs building se
  • 继承与多态

    1 给Point类添加一下几个求两点间距离的多态方法 xff1a public double distance Point p public double distance int x int y public static double
  • css+js制作一个简易的播放器

    lt doctype html gt lt html gt lt head gt lt meta charset 61 34 UTF 8 34 gt lt meta name 61 34 Keywords 34 content 61 34
  • 图片轮播

    lt DOCTYPE HTML gt lt HTML gt lt HEAD gt lt META name 61 34 Generator 34 content 61 34 EditPlus 34 gt lt META name 61 34
  • 3d盒子

    lt DOCTYPE HTML gt lt HTML gt lt HEAD gt lt TITLE gt 旋转盒 lt TITLE gt lt meta charset 61 34 UTF 8 34 gt lt META name 61 3
  • 基于JavaScript之碰撞的小球

    lt DOCTYPE HTML gt lt HTML gt lt HEAD gt lt META name 61 34 Generator 34 content 61 34 EditPlus 34 gt lt META name 61 34
  • 排序、查找、链表、栈、队列等常见数据结构算法代码实现(C语言版)

    列举了一些数据结构常用算法的代码实现及注释讲解 xff0c 所有代码都自己进行过测试 xff0c 如有疑问请留言 插入排序 include lt stdio h gt typedef struct int key datatype void
  • Java分治法实现日程表

    算法描述 xff1a 设有n 61 2的k次个运动员要进行网球比赛 xff0c 现在要设计一个满足一下要求的比赛日程表 xff1a 每个选手必须要与其他n 1个选手各赛一次每个选手一天只能赛一次循环赛一共进行n 1天 日程表 1234567
  • Struts-标签使用

    1 form标签 表格标签 xff0c f可以用于提交数据 示例 xff1a lt 64 taglib prefix 61 34 s 34 uri 61 34 struts tags 34 gt lt html gt lt body gt
  • Struts-拦截器+通配符+客户端跳转

    1 通配符匹配 Product 表示所有以Product结尾的路径 xff0c 都会匹配在这个Action上 method 61 1 表示第一个通配符 如果访问的是addProduct就会调用add方法 如果访问的是listProduct就
  • Hibernate-基本操作

    1 数据插入 Hibernate可以使用for循环插入多个数据到数据库 示例 xff1a public class TestHibernate public static void main String args SessionFacto
  • 将视觉信息转换为mavros

    https github com thien94 vision to mavros blob master src vision to mavros cpp rosmsg show mavros msgs LandingTarget MAV
  • 分蛋糕+中间数

    问题描述 小明今天生日 xff0c 他有n块蛋糕要分给朋友们吃 xff0c 这n块蛋糕 xff08 编号为1到n xff09 的重量分别为a1 a2 an 小明想分给每个朋友至少重量为k的蛋糕 小明的朋友们已经排好队准备领蛋糕 xff0c