动物园的栅栏

2024-05-05 15:28
文章标签 栅栏 动物园

本文主要是介绍动物园的栅栏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【问题描述】

小芳和她的朋友们沿着高度为 h 的动物园栅栏一起行走,他们不想惊扰到动物们,因此他们每个人的高度都不能超过 h ,如果他们中有人身高超过 h ,则他必须弯下腰来行走。

如果将正常行走的人的宽度视为1的话,那么当他弯下腰的时候宽度会变为2。小芳的朋友们想一边走一边聊天,他们希望尽量走成一排,但是道路宽度是有限的,因此可能要分成几排来行走。

给出朋友们的人数 n(包括小芳)、栅栏的高度 h 以及道路的宽度 w ,以及所有 n 个朋友的身高,请输出最少能走成几排?

【输入形式】

输出的第一行为三个整数 n、h、w,接下来的一行 n 个整数,分别表示 n 个人的身高。

【输出形式】

输出为一个整数,表示朋友们可以行走的最小排数。

【样例输入】

2 2 3

1 3

【样例输出】

1

Java代码

import java.util.Scanner;public class C4 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt(); // 朋友的人数int h = scanner.nextInt(); // 栅栏的高度int w = scanner.nextInt(); // 道路的宽度int totalWidth = 0; // 总宽度需求int flag = 0; //用于标记朋友的身高是否全为2for (int i = 0; i < n; i++) {int height = scanner.nextInt(); // 朋友的身高if (height <= h){flag = 1;}totalWidth += (height <= h) ? 1 : 2; // 正常行走宽度为1,弯下腰行走宽度为2}// 计算最少排数int minRows = totalWidth / w;// 如果有余数,则需要再加一排if (totalWidth % w != 0) {minRows += 1;}if (flag == 0){ //特殊情况:即所有人的height都大于栏栅h,每一排就只能站一个人minRows = n;}System.out.println(minRows);}
}

这篇关于动物园的栅栏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962022

相关文章

2054. 骑马修栅栏

代码 #include<bits/stdc++.h>using namespace std;int mp[505][505];queue<int> ans;int du[505];int n=0,m,u,v;void dfs(int i){for(int j=1;j<=n;j++){if(mp[i][j]>=1){mp[i][j]--;mp[j][i]--;dfs(j);}}an

Vulkan教程 - 12 栅栏和信号量

这一章所有东西都会整合到一起了。我们将会写一个drawFrame方法,它会被主循环调用,将三角形呈现到屏幕上。创建drawFrame方法在mainLoop的while内处理事件后调用: void mainLoop() {while (!glfwWindowShouldClose(window)) {glfwPollEvents();drawFrame();}}

栅栏Java示例——CyclicBarrier

一个Barrier的小例子,栅栏数和线程池数量可以随便调整,模拟因栅栏一直等待导致的死锁,当线程数小于栅栏数时会出现死锁情况。 import java.util.Random;import java.util.concurrent.*;public class BarrierDemo {public static void main(String[] args) {ExecutorServic

解析《动物园规则怪谈》【逻辑】

鉴赏《动物园规则怪谈》【逻辑】 前言版权推荐鉴赏《动物园规则怪谈》推理游客正方“它”方其他物品 不同规则或纸条的对比联系出现的地方及联系游客入园历程:被“它”污染的过程鉴赏升华 最后 前言 2024-5-31 13:05:38 以下内容源自《【逻辑】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN@日星月云 博客主页是h

跟我学C++中级篇——内存屏障内存栅栏和编译器屏障以及相关

一、低级同步常见的技术术语 在一些操作系统或者计算机接口等比较原理化的书籍中,经常提到一些低级的同步术语,或者说一些同步的抽象的说法。最典型的就是内存内存屏障。不同的平台和语言有不同的叫法,有的叫内存栅栏或者屏障指令。它的主要作用就是多线程环境下内存访问的顺序性和可见性即实现在某点的中行化操作。 内存屏障有两大类,一般是内存屏障(或者叫CPU屏障)和编译器屏障。 1、CPU内存屏障 这种屏障一般

Java并发包之闭锁/栅栏/信号量

一、Java多线程总结: 描述线程的类:Runable和Thread都属于java.lang包。内置锁synchronized属于jvm关键字,内置条件队列操作接口Object.wait()/notify()/notifyAll()属于java.lang包。提供内存可见性和防止指令重排的volatile属于jvm关键字。而java.util.concurrent包(J.U.C)中包含的是java

java并发编程之CyclicBarrier(循环栅栏)

package com.zhong;import java.util.concurrent.CyclicBarrier;/*** Cyclic意思是循环,Barrier意思是屏障,那么CyclicBarrier翻译过来就是循环栅栏。* 它是一个同步辅助类,能让一组线程互相等待,* 直到这一组线程都到了一个公共屏障点,各线程才能继续向下执行。因为该屏障能够在释放等待线程后继续重用,所以叫循环屏障。*

bzoj3670 Noi2014动物园 - exkmp

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3670 题意:求出一个num数组一一对于字符串S的前i个字符构成的子串T,有字符串既是T的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i]。求对1,000,000,007的取模 题解:不会kmp的我用exkmp做了。。求出的extend[]就是下面

内存栅栏 内存模型

公众号:内存栅栏 先抛出代码: atomic<int> a{0};atomic<int> b{0};int set(){    a.store(1,memory_order_relax);    b.store(2,memory_order_relax);} int observe(){cout<<"a="a<<" b="<<b;}int main(){thead t1(set);thread