求此题FREE PASCAL源代码

求此题FREE PASCAL源代码,第1张

你好,这是一道很典型的动态规划的题目。用背包岁衡好思想,转移方程就是:f[j]:=f[j-a[i]]+b[i]。

下面就是源代码:

var

m,t,i,j:longint

f:array[0..1000000]

of

longint

a,b:array[0..600]

of

longint

begin

readln(t,m)

for

i:=1

to

m

do

readln(a[i],b[i])

fillchar(f,sizeof(f),0)

for

i:=1

to

m

do

for

j:=t

downto

a[i]

do

if

f[j]<f[j-a[i]]+b[i]

then

f[j]:=f[j-a[i]]+b[i]

writeln(f[t])

end.

如果乎铅要用文件形式的话就是:

var

m,t,i,j:longint

f:array[0..1000000]

of

longint

a,b:array[0..600]

of

longint

begin

assign(input,'文件名.in'拦宽)

reset(input)

assign(output,'文件名.out')

rewrite(output)

readln(t,m)

for

i:=1

to

m

do

readln(a[i],b[i])

fillchar(f,sizeof(f),0)

for

i:=1

to

m

do

for

j:=t

downto

a[i]

do

if

f[j]<f[j-a[i]]+b[i]

then

f[j]:=f[j-a[i]]+b[i]

writeln(f[t])

close(input)

close(output)

end.

谢谢,祝你好运。

program pairvar m,n,i,j,k,min,low,temp:longint a:array[0..120] of longint b:array[0..15] of longint c:array[0..200006] of integerbegin assign(input,'pair.in') assign(output,'pair.out') reset(input) read(n) m:=n*(n-1) div 2 for i:=0 to m-1 doread(a[i]) for i:=0 to m-2 dofor j:=i 1 to m-1 do if a[i]>a[j] thenbegin temp:=a[i] a[i]:=a[j] a[j]:=temp end min:=a[0] fillchar(c,0,sizeof(c)) for i:=0 to (min div 2) do begin for j:=0 to m-1 doc[a[j]]:=0 for j:=1 to m doinc(c[a[j]]) b[0]:=i b[1]:=a[0]-i now:=1 for j:=2 to n-1 dowhile (now<m) and not(c[a[now]]) do inc(now) if now=m then break b[j]:=a[now]-b[0] for k:=0 to j-1 doif (c[b[k] b[j]]) then dec(c[b[k] b[j]]) else break if k<j then break end writeln(b[i])end.

注:对不起,由于百度的撤铅册销缩进,我所敲入的程序原本是有各槐含式的,现在已经被弄得一团糟。铅激笑

题目应该是有附加要求不得读取源文件,因为事实上代码编译后源文件不一定存顷山配在。

这个题目挺经典,C语言的版本比较常见,利用了C语言中字符串的一些技雀指巧,如:

#include <stdio.h>

int main() { char *s = "#include <stdio.h>%cint main() { char *s = %c%s%cprintf( s, 10, 34, s, 34 )return 0}"printf( s, 10, 34, s, 34 )return 0}

(注意后唯睁面的main()函数是一个长行)

下面是Pascal版本的:

var a:stringbegin a:='var a:stringbegin a:=writeln(copy(a,1,22),chr(39),a,chr(39),copy(a,23,59))end.'writeln(copy(a,1,22),chr(39),a,chr(39),copy(a,23,59))end.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12538155.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存