【有料c++题目周刊 | 第三期】复兴时代

news2024/9/24 11:32:10

文章目录

  • 第一题:最佳圆柱体直径
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入样例
    • 输出样例
    • 解题思路&C++题解
  • 第二题:贪心国王
    • 题目描述
    • 输入格式
    • 输出格式
    • 数据范围
    • 输入样例
    • 输出样例
    • 解题思路&C++题解

第一题:最佳圆柱体直径

题目描述

在复兴时期,一位富有的商人拥有许多宝贵的珠宝,他想要在他的商店里展示这些珠宝。为了使展示效果更好,他决定使用一种特殊的摆放方式,使得商店里的每一颗珠宝都能够被最多的人看到。


在这里插入图片描述


商人的商店是一个矩形,他想要在商店中心放置一个圆柱体,使得这个圆柱体能够完全包含所有的珠宝。

给定商店的长度 L L L(单位:米)、宽度 W W W(单位:米)以及圆柱体的高度 H H H(单位:米),你需要编写一个程序来计算出最大的圆柱体直径 D D D(单位:米),使得这个圆柱体能够完全包含所有的珠宝。

输入格式

输入的第一行包含三个整数 L L L W W W H H H,表示商店的长度、宽度和圆柱体的高度。

输出格式

输出一个数字,表示最大的圆柱体直径 D D D。答案保留小数点后 2 位。

输入样例

5 6 7

输出样例

5.00

解题思路&C++题解

思路:

在解决本题时,我们需要考虑以下几点:

圆柱体的直径是一个可变的参数,我们需要枚举不同的直径值来找到最优解。
圆柱体的高度是一个已知的参数,我们需要使用它来计算圆柱体的体积。
商店的长度和宽度也是已知的参数,我们需要使用它们来计算圆柱体的最大直径。
算法流程:

读入商店的长度 L L L、宽度 W W W 和圆柱体的高度 H H H

设置一个变量 m a x D maxD maxD 表示目前找到的最大的圆柱体直径,初始化为 0。

设置一个变量 D D D 表示当前枚举的圆柱体直径,从 0 开始枚举。

计算圆柱体的体积 V V V

如果圆柱体的体积 V V V 大于等于商店的长度 L L L 和宽度 W W W 的乘积,则将 m a x D maxD maxD 更新为当前的圆柱体直径 D D D

D D D 增加 0.01,重复步骤 4 和 5。

输出 m a x D maxD maxD

注意:

  • 在计算圆柱体体积时,要将圆柱体直径除以 2 得到圆柱体的半径,然后再使用公式计算圆柱体的体积。

  • 在输出答案时,要使用 printf 函数,并且要保留两位小数。

C++ 代码如下:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int L, W, H;
    cin >> L >> W >> H;

    double maxD = 0; // 记录找到的最大的圆柱体直径
    double D = 0; // 当前枚举的圆柱体直径
    while (D <= min(L, W))
    {
        // 计算圆柱体的体积
        double r = D / 2; // 圆柱体的半径
        double V = 3.14 * r * r * H; // 圆柱体的体积

        if (V >= L * W) // 圆柱体的体积大于等于商店的长宽乘积
        {
            maxD = D;
        }

        D += 0.01;
    }

    printf("%.2lf\n", maxD);

    return 0;
}

第二题:贪心国王

题目描述

在英国的复兴时代,有一位国王统治着整个国家。这位国王非常贪心,他希望尽可能多地收集财富,但同时他也要考虑国内的经济和政治情况。


在这里插入图片描述


作为国王的贤辅,你被要求设计一个程序来帮助国王做出最优的决策。具体来说,你需要设计一个程序,根据国王的资源情况和政治局势,为国王提供一系列的财富增长策略。

国王有两种资源可供使用:金子和石头。金子可以通过掠夺、贸易或探索新地区来获得,而石头则可以通过掠夺、采矿或向其他国家购买来获得。

你的程序需要根据国王所拥有的金子和石头的数量,以及国王的政治局势(也就是国王周围的国家的势力),为国王提供最优的财富增长策略。

具体来说,你的程序需要实现以下功能:

  • 根据国王的资源情况和政治局势,计算出国王每一种财富增长策略的收益。
  • 根据收益的大小,为国王排序各种财富增长策略。

输入格式

第一行包含三个整数n、m、k,分别表示国王所拥有的金子数量、石头数量和周围国家的势力。

第二行包含五个整数a1、a2、a3、b1、b2,分别表示掠夺、贸易和探索新地区三种获得金子的方式的收益和消耗。具体来说,a1表示掠夺获得的金子数量,a2表示贸易获得的金子数量,a3表示探索新地区获得的金子数量,b1表示掠夺消耗的石头数量,b2表示贸易消耗的石头数量。

第三行包含三个整数c1、c2、c3,分别表示掠夺、采矿和购买三种获得石头的方式的收益和消耗。具体来说,c1表示掠夺获得的石头数量,c2表示采矿获得的石头数量,c3表示购买获得的石头数量。

输出格式

输出六行,每行一种财富增长策略。每行输出两个数字,分别表示这种策略的收益和消耗。按照收益从大到小的顺序输出。

数据范围

1≤n,m,k≤109,
−109≤a1,a2,a3,b1,b2,c1,c2,c3≤109

输入样例

10 20 30
30 20 10 3 2
20 10 5

输出样例

30 3
20 2
10 0
20 10
10 5
10 0

解题思路&C++题解

思路:

由于题目中给出的数据范围,我们可以直接用一个数组来存储每一种财富增长策略的收益和消耗,然后再将这个数组按照收益从大到小排序,最后直接输出即可。

C++代码如下:

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 6;

struct Node{
    int s, e;
}a[N];

bool cmp(Node a, Node b)
{
    return a.s > b.s;
}

int main()
{
    int n, m, k;
    scanf("%d%d%d", &n, &m, &k);
    scanf("%d%d%d%d%d", &a[0].s, &a[1].s, &a[2].s, &a[0].e, &a[1].e);
    scanf("%d%d%d", &a[3].e, &a[4].e, &a[5].e);
    a[3].s = a[4].s = a[5].s = 0;
    sort(a, a + N, cmp);

    for (int i = 0; i < N; i ++ ) printf("%d %d\n", a[i].s, a[i].e);

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/98202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DevOps实战系列【第十二章】:详解Shared Libraries共享库

个人亲自录制全套DevOps系列实战教程 &#xff1a;手把手教你玩转DevOps全栈技术 随着jenkins pipeline项目越来越多&#xff0c;冗余代码也越来越多&#xff0c;所以share library诞生。 流水线支持在外部仓库中创建【共享库】&#xff0c;然后加载到现有流水线中使用&#xf…

XXL-Job分布式任务调度框架-- 集群HA的配置3

一 xxl-job集群概述 1.1 xxl-job集群HA的作用 为了避免单点故障&#xff0c;任务调度系统通常需要通过集群实现系统高可用 由于任务调度系统的特殊性&#xff0c;“调度”和“任务”两个模块需要均支持集群部署&#xff0c;由于职责不同&#xff0c;因此各自集群侧重点也有…

AcWing第82场周赛

目录 1.第k个数 2. 多米诺骨牌 3.构造序列 1.第k个数 题目描述 给定一个长度为n的整数序列&#xff0c;a1,a2,...,an,以及一个整数k&#xff0c;请你计算该数列从大到小排序后的第k个数。 输入格式 第一行包含两个整数n&#xff0c;k 第二行n个整数 输出格式 输出一个数&…

Sqoop安装教程

Sqoop安装教程 文章目录Sqoop安装教程一、资料二、安装&#xff08;一&#xff09;上传文件&#xff08;二&#xff09;解压文件&#xff0c;并重命名(三)修改配置文件1、进入到/opt/module/sqoop/conf中2、修改配置文件&#xff08;1&#xff09;将sqoop环境的模板文件&#x…

【M2 VMware Ubuntu】全流程安装指南

这里写自定义目录标题VMware Fusion安装M2 VMware Ubuntu 安装安装桌面环境安装 Open VM 工具禁用 Wayland更新 5.14 内核&#xff08;非必要不要更新&#xff09;VMware Fusion安装 这里就不再阐述如何安装啦&#xff01;当然这也不是本文关注重点&#xff01; M2 VMware Ub…

VB写dll以及调用的具体实例

目录 一.dll的简介 二.VB6中的dll 1.常见的调用的方法: 2.通过vb6写dll&#xff1a; 3.dll的调用 三.出现的一些问题: 一.dll的简介 1.dll被称为动态链接库,是一个可由多个程序或其他dll调用用的代码和的库&#xff0c;使用dll可以让程序可以更加模块化&#xff0c;避免重…

自适应布局和响应式布局

写在前面 我们在开发的时候&#xff0c;经常会听到关于各种布局的概念&#xff0c;而且里面有些概念经常会混淆&#xff0c;这篇文章主要就是介绍一下静态布局、流式布局、自适应布局、响应式布局和弹性布局的特点和应用场景 布局的历史发展 随着互联网和相关设备的发展&#…

C#语言实例源码系列-鼠标设置

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断反思前进的过程。在这个过程中…

DDL(保姆级教学)

目录 DDL&#xff1a; 1、数据库的创建&#xff1a; 2、由于重复创建同名数据库会报错 3、注意如果默认字符集为Latin1,其不支持中文&#xff0c;所以改为&#xff1a; 数据库的创建&#xff1a; 数据表的创建 属性的数据类型 1、数值类型&#xff1a; 2、字符串类型&a…

离散数学-用以图转化为矩阵并且求出这个矩阵的最大度最小度

题目: 从键盘输入无向图的邻接矩阵&#xff0c;判断输出该图结点最大度数、最小度数。 问题的分析&#xff1a; 对于一个图的输入&#xff0c;你一定会去使用二维数组来进行数据的存储&#xff0c;那么第一步就是建立一个二维数组&#xff0c;然后来进行输入&#xff0c;我下…

广域网技术——SRv6隧道类型及数据转发

目录 SRv6节点 节点角色 节点行为 SRv6数据转发隧道建立方式 SRv6 BE L3VPNv4 over SRv6 BE EVPN L3VPNv6 over SRv6 BE SRv6 TE Policy SRv6使用IPv6数据平面&#xff0c;基于IPv6扩展头进行扩展实现类似标签转发的处理 SR-MPLS在建立SR-MPLS隧道时&#xff0c;如果有…

Windows版本的Redis(新版本的GitHub地址)

Redis通常被称为数据结构服务器&#xff0c;因为值&#xff08;value&#xff09;可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型 Redis官网地址&#xff1a;Redis 关于Windows版本 Redis目前提供源码、Docker镜像、云版三种下载形…

利用@Retryable注解实现重试机制

Retryable 它可以作用在方法上&#xff0c;当方法抛出指定的异常时&#xff0c;整个方法将会被重新执行。在使用时需要先在pom.xml中导入相关依赖&#xff0c;再在启动类中添加EnableRetry注释以开启重试功能&#xff0c;最后在相应的方法上添加Retryable注释。 引入依赖 <…

【边缘检测】蚁群算法图像边缘检测【含Matlab源码 1189期】

⛄一、获取代码方式 获取代码方式1&#xff1a; 完整代码已上传我的资源&#xff1a;【边缘检测】基于matlab蚁群算法图像边缘检测【含Matlab源码 1189期】 获取代码方式2&#xff1a; 通过订阅紫极神光博客付费专栏&#xff0c;凭支付凭证&#xff0c;私信博主&#xff0c;可…

12.17 - 每日一题 - 408

每日一句&#xff1a; 我们生活在行动中&#xff0c;而不是生活在岁月里;我们生活在思想中&#xff0c;而不是生活在呼吸里。 数据结构 1 在有向图G的拓扑序列中&#xff0c;若顶点Vi在顶点Vj之前&#xff0c;则下列情形不可能出现的是______ A.G中有弧<Vi,Vj>B.G中有…

sqli-labs 通关笔记详解 Less1 - Less10

文章目录GET显错注入流程前置知识注入步骤GET盲注基本流程前置知识注入步骤Less - 1Less - 2Less - 3Less - 4Less - 5Less - 6Less - 7Less - 8Less - 10做sqli-labs靶场之前建议补一下基础 SQL注入简介和注入方法教学 Web安全基础-SQL MySQL SQLMAP工具 详细使用方法 GET显…

动态规划问题——换钱的最少货币数

题目&#xff1a; 给定数组arr&#xff0c;arr中所有的值都为正数且不重复。每个值代表一种面值的货币&#xff0c;每种面值的货币可以使用任意张&#xff0c;在给定一个整数aim&#xff0c;代表要找的钱数&#xff0c;求组成aim的最少货币数。 示例&#xff1a; arr [5,2,…

自动生成MySQL DDL建表语句

简介项目中大部分情况下都是使用MySQL数据&#xff0c;而且主要使用的数据库类型是char、varchar、date、datetime、timestamp、int、tinyint等几种常见的数据类型&#xff1b;而且进行表设计时&#xff0c;一般都要出一份表设计文档&#xff0c;例如表设计模板如下因为有了如此…

[附源码]Nodejs计算机毕业设计基于移动端的药方收集系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

【Spring】一文带你吃透IOC容器技术

目录 一、前言 二、IOC容器技术 1、ioc概念 2、DI依赖注入 2.1、构造注入依赖 2.2、setter注入依赖 3、ioc底层实现 4、基于xml配置声明Bean以及使用 4.1、根节点标签beans 4.2、声明Bean 4.3、Bean的使用 5、面向接口编程 5.1、新增接口IOrderService 5.2、Order…