PAT 1010 月饼

2024-05-24 14:08
文章标签 月饼 pat 1010

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

题目描述
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需

求量,请你计算可以获得的最大收益是多少。

注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、

72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖出全部15万吨第2种月饼、以及5万吨第3种月饼,获得

72 + 45/2 = 94.5(亿元)。

输入描述:
每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N表示月饼的种类数、以及不超过500(以万吨为单位)的正整数

D表示市场最大需求量。随后一行给出N个正数表示每种月饼的库存量(以万吨为单位);最后一行给出N个正数表示每种月饼的总售价(以亿

元为单位)。数字间以空格分隔。

输出描述:
对每组测试用例,在一行中输出最大收益,以亿元为单位并精确到小数点后2位。

输入例子:
3 20

18 15 10

75 72 45

输出例子:
94.50

#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <iomanip>
#include <stdio.h>using namespace std;int main()
{int nTotalSorts = 0;int nNeedWeight = 0;double nMessage[1000][4] = {0};double temp[1][4] = {0};int index = 0;int nLast = 0;double dSumMoney = 0;cin >> nTotalSorts >> nNeedWeight;/* 输入每一种的库存量 */for(index = 0; index < nTotalSorts; index++){cin >> nMessage[index][0];}/* 输入每一种的总金额 */for(index = 0; index < nTotalSorts; index++){cin >> nMessage[index][1];nMessage[index][2] = nMessage[index][1]*1.0 / nMessage[index][0];}/* 用选择排序,根据平均金额进行排序,把最大的放到前面 */int i = 0, j = 0;for(i = 0; i < nTotalSorts-1; i++){for(j = i + 1; j < nTotalSorts; j++ ){if(nMessage[i][2] < nMessage[j][2]){temp[0][0] = nMessage[i][0];temp[0][1] = nMessage[i][1];temp[0][2] = nMessage[i][2];nMessage[i][0] = nMessage[j][0];nMessage[i][1] = nMessage[j][1];nMessage[i][2] = nMessage[j][2];nMessage[j][0] = temp[0][0];nMessage[j][1] = temp[0][1];nMessage[j][2] = temp[0][2];}}}nLast = nNeedWeight;index = 0;while(nLast >= 0 && index < nTotalSorts){if(nMessage[index][0] > nLast){dSumMoney = dSumMoney + nLast * nMessage[index][2];}else{dSumMoney = dSumMoney + nMessage[index][1];}nLast = nLast - nMessage[index][0];index++;}printf("%.2f\n",dSumMoney);return 0;
}

这篇关于PAT 1010 月饼的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HDU 1010 Tempter of the Bone (搜索)

OJ题目 : click here ~~ 大概题意 : 迷宫搜索。从起点到终点 ,不能回头 , 问能不能在恰好在T 时刻,准时到达终点。 本题充分体现了剪枝的重要性: 奇偶性剪枝: 可以把maze看成这样:  0 1 0 1 0 1  1 0 1 0 1 0  0 1 0 1 0 1  1 0 1 0 1 0  0 1 0 1 0 1  从为 0 的格子走一步,必然走向为 1 的格子

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

PAT (Advanced Level) Practice

1001:  题目大意: 计算 a+b 的结果,并以标准格式输出——即每三个数字一组,组之间用逗号分隔(如果数字少于四位,则不需要逗号分隔)  解析: 我们知道相加右正有负,对于样例来说 Sample Input: -1000000 9 Sample Output: -999,991 如果是从左往右,算上负号的话输出应该是-99,999,1 从右往左:-,999,991离正确

1050 String Subtraction——PAT甲级

Given two strings S1​ and S2​, S=S1​−S2​ is defined to be the remaining string after taking all the characters in S2​ from S1​. Your task is simply to calculate S1​−S2​ for any given strings. However,

hdu---1010 Tempter of the Bone (经典DFS,注意剪枝)

/*经典的dfs 主要考虑剪枝否则会超时           HDU 1010  */ # include<iostream> # include<cstdio> # include<cmath> # include<cstdlib> # include<cstring> # include<string> using namespace std; char

甘肃五仁月饼:美味中的陇原韵味

在月饼的大家族中,甘肃食家巷五仁月饼以其独特的魅力和浓郁的地方特色,占据着重要的一席之地。甘肃,这片广袤而充满历史底蕴的土地,赋予了五仁月饼别样的风情。甘肃五仁月饼的馅料丰富而实在,那一颗颗饱满的杏仁、核桃仁、花生仁、瓜子仁、芝麻仁,仿佛是大自然的馈赠被精心地包裹在金黄的饼皮之中。杏仁的香脆,为月饼增添了一份清新的口感。核桃仁则带来了醇厚的坚果香气,咬上一口,满满的都是营养与满足。花生仁的香甜,让

1105 链表合并——PAT乙级

给定两个单链表 L1​=a1​→a2​→⋯→an−1​→an​ 和 L2​=b1​→b2​→⋯→bm−1​→bm​。如果 n≥2m,你的任务是将比较短的那个链表逆序,然后将之并入比较长的那个链表,得到一个形如 a1​→a2​→bm​→a3​→a4​→bm−1​⋯ 的结果。例如给定两个链表分别为 6→7 和 1→2→3→4→5,你应该输出 1→2→7→3→4→6→5。 输入格式: 输入首先在第一

1110 区块反转——PAT乙级

给定一个单链表 L,我们将每 K 个结点看成一个区块(链表最后若不足 K 个结点,也看成一个区块),请编写程序将 L 中所有区块的链接反转。例如:给定 L 为 1→2→3→4→5→6→7→8,K 为 3,则输出应该为 7→8→4→5→6→1→2→3。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤105)、以及正整数 K (

1010 A+B for Input-Output Practice (I)

题目描述 Your task is to Calculate a + b.   Too easy?! Of course! I specially designed the problem for acm beginners.   You must have found that some problems have the same titles with this one, yes,