邮票 pascal(usaco)水第十组数据的优化!!!

[复制链接]
查看11 | 回复2 | 2010-11-12 22:07:47 | 显示全部楼层 |阅读模式
设已知面额的邮票m种,每种有n张。问:用总数不超过n张的邮票进行组合,能组合的邮票面额中可以连续出现的面额数最多有多少?
输入:第一行:n和m的值,中间用一空格隔开。

第二行:a[1..m](面额),每个数中间用一个空格隔开。
输出:连续面额数的最大值
样例输入:43

124
样例输出:14
pascal语言

回复

使用道具 举报

千问 | 2010-11-12 22:07:47 | 显示全部楼层
虽然是DP,但你的程序写的太不好了,以至于复杂度的常数比较大我的:var n,m,i,j,min:longint;
a,f:array[0..1000] of longint;beginreadln(n,m);for i:=1 to m do read(a);f[0]:=0;i:=0;repeat
i:=i+1; min:=maxlongint;
for j:=1 to m do
if i>=a[j] then
if f[i-a[j]]+1<min then min:=f[i-a[j]]+1;
f:=min;u
回复

使用道具 举报

千问 | 2010-11-12 22:07:47 | 显示全部楼层
program zd1; var a,b:array[0..25500]of longint;
f:array[0..25500]of boolean;
i,n,m,j,k,max:longint;begin readln(m);
readln(n);
max:=0;
for i
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行