麻烦计算机高手们帮我解决一个pascal程序题

来源:百度知道 编辑:UC知道 时间:2024/05/24 03:28:38
1.车库里的车(car.pas)
在一个巨大的车库里,放着许多不同种类的车,有一天车库老板对车库里最多的车产生了兴趣,他问车库管理员“车库里什么种类的车最多?”,这一下可急坏了车库管理员,无奈之下,车库管理员求你帮他找出最多的车是哪一种。
输入:第一行n,后n行每行表示每一种车的编号
输出:最多车的编号和数量
1<=n<=10000000
(注:最多的车在车库里的占有率大于10%)
例:input.txt
5
2
2
3
2
1
output.txt
2
3
2.背包问题。设有n种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为X,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于X而价值的和最大。
输入数据:
第一行两个数:物品总数n,背包载重量X;两个数用空格分隔;
第二行n个数,为n种物品重量;两个数用空格分隔;
第三行n个数,为n种物品价值;两个数用空格分隔;
输出数据:
第一行总价值;
以下n行,每行两个数,分别为选取物品的编号及数量;
输入样例:
4 10
2 3 4 7
1 3 5 9
输出样例:
12
2 1
4 1
麻烦师兄们将程序写成一个“完完整整的程序”,不然小弟看不懂,
非常感谢

第一个
program hi1;
var
n,i,j,pm : integer;
s : array[0..maxint] of integer;

begin
readln(n);
for i:=1 to n do
begin
readln(j);
inc(s[j]);
end;

pm=0;
for i:=1 to n do
begin
if (s[i]>s[pm]) then
pm=i;
end;
writeln(pm);
writeln(s[pm]);
end.

问题是无法处理n过大的问题,需要更复杂的结构

第二个是很常见的背包问题吧..随便看个便历教程就有

program exx89-3;
var
begin
end.