【有料c++题目周刊 | 第三期】复兴时代
创始人
2024-04-25 19:39:17
0

文章目录

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

第一题:最佳圆柱体直径

题目描述

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


在这里插入图片描述


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

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

输入格式

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

输出格式

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

输入样例

5 6 7

输出样例

5.00

解题思路&C++题解

思路:

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

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

读入商店的长度 LLL、宽度 WWW 和圆柱体的高度 HHH。

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

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

计算圆柱体的体积 VVV。

如果圆柱体的体积 VVV 大于等于商店的长度 LLL 和宽度 WWW 的乘积,则将 maxDmaxDmaxD 更新为当前的圆柱体直径 DDD。

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

输出 maxDmaxDmaxD。

注意:

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

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

C++ 代码如下:

#include 
#include 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 
#include 
#include 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;
}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...