永发信息网

一道pascal贪心问题 pizza

答案:2  悬赏:60  手机版
解决时间 2021-02-02 00:31
试题描述
Michael请N个朋友吃馅饼,但是每个朋友吃且仅吃一个馅饼的1/4、1/2或3/4。请你编程求出Michael至少需要买多少个馅饼。
输入要求
输入数据的第一行是整数N,1 ≤ N ≤ 10000;接下来的N行中,每行都是1/4、1/2或3/4。
输出要求
输出数据仅有一行包含一个整数--至少需要购买的馅饼数目。
输入样例
6
3/4
1/2
3/4
1/2
1/4
1/2
输出样例
4
知识点及提示
如果Michael有4个朋友都要吃3/4的馅饼,则Michael要买4个馅饼,买3个馅饼是不行的,因为第4个朋友他不愿意吃3个1/4馅饼。
读入数据时既可以用一个字符串变量读入一行如readln(s); s为字符串(string)类型的变量;也可以读3个字符如readln(c1,c2,c3); c1,c2,c3为字符(char)类型的变量。 不能用实数类型的变量读入数据,因为1/2,1/4,3/4都是表达式,不是实数常量。
样例中的4个馅饼是这样安排的,第1个朋友和第5个朋友合吃1个馅饼,第3个朋友单独吃1个馅饼,第2个朋友和第4个朋友合吃一个馅饼,第6个朋友单独吃1个馅饼,共计需要4个馅饼。
最佳答案
//样例过了,应该是对的吧
var
n,i,s:longint;
v:array[1..3]of longint;
st:string;
begin
readln(n);
for i:=1 to n do begin
readln(st);
if st='1/4' then inc(v[1]);
if st='1/2' then inc(v[2]);
if st='3/4' then inc(v[3]);
end;
if v[1]>v[3]then begin
inc(s,v[3]);
dec(v[1],v[3]);
v[3]:=0;
end
else begin
inc(s,v[1]);
dec(v[3],v[1]);
v[1]:=0;
end;
inc(s,v[1]shr 2+v[2]shr 1);
v[1]:=v[1]mod 4;
v[2]:=v[2]mod 2;
inc(s,v[1]+v[2]+v[3]);
writeln(s);
end.
全部回答
《编程之美》里面有一道买书问题的贪心算法。 题目是这样的: 在节假日的时候,书店一般都会做促销活动。由于《哈利波特》系列相当畅销,店长决定通过促销活动来回馈读者。上柜的《哈利波特》平装本系列中,一共有五卷。假设每一卷单独销售均需8欧元 。如果读者一次购买不同的两卷,就可以扣除5%的费用,三卷则更多。假设具体折扣的情况如下: 本数 折扣 2 5% 3 10% 4 20% 5 25% 在一份订单中,根据购买的卷数及本数,就会出现可以应用不同折扣规则的情况。但是,一本书只会应用一个折扣规则。比如,读者一共买了两本卷一,一本卷二。那么,可以享受到5%的折扣。另外一本卷一则不能享受折扣。如果有多种折扣,希望计算出的总额尽可能的低。 要求根据以上需求,设计出算法,能够计算出读者所购买一批书的最低价格。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
广诺出租车服务公司地址有知道的么?有点事想
请问在室外水池的给排水图上WL和BF分别表示什
家旅自驾汽车租赁公司怎么去啊,我要去那办事
已亥杂诗表达了作者怎样的志向
为抵消焊接变形,在焊前装配时先将焊件向焊接
来辟的意思是什么啊?知道的请说下!
欧野这个地址在什么地方,我要处理点事
小刀电动车没电也能跑,原理是什么?是车内有一
孤独如我,是什么意思
湖州市冬天有什么地方游玩?
日本人怎么看中国视频
有一首是粤语歌啦啦啦啦 啦啦啦啦 男生唱的 D
视问的意思是什么啊?知道的请说下!
广州市三木森皮具有限公司怎么样?
凯达汽车租赁行地址好找么,我有些事要过去
推荐资讯
开始主板自检后,都会要求F1进行设置才能启动
标致207 1.4L用什么机油最好
鼠标垫脚用什么材料能DIY一下,原来的磨掉了
中间空气层厚度为10mm的中空玻璃,其导热系数
ipad 可以下载什么程序来看视频?就是支持多
固原正通汇汽车销售服务有限公司怎么去啊,我
尚赫公司有国家工商部发的执照吗?
如果一辆车以10m/s的速度向东行驶,车上站一
中国工商银行(天通苑支行)地址有知道的么?有
itunes不能连接ipad是由于未能找到url怎么办
新和村地址在什么地方,我要处理点事
女生的手相智慧线是一条横纹好吗代表什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?