2012年分区联赛普级组第三题 摆花

来源:互联网 发布:淘宝9.9元天天特价 编辑:程序博客网 时间:2024/05/16 18:16
2012年分区联赛普级组第三题 <wbr>摆花


解题思路:本题需用动态规划,三层循环,分别是1n0m0ja[i]较小的那个数,然后计算下面这个式子:f[i,j]:=f[i,j]+f[i-1,j-k]。最后输出f[n,m]即可。


程序:
var
  f:array[0..100,0..100] of longint;
  a:array[1..100] of longint;
  n,m,i,j,k:longint;

function min(x,y:longint):longint;
  begin
    if x
    exit(y);
end;

begin
  readln(n,m);
  for i:=1 to n do
    read(a[i]);
  fillchar(f,sizeof(f),0);
  f[0,0]:=1;
  for i:=1 to n do
    for j:=0 to m do
      fork:=0 to min(j,a[i]) do
       f[i,j]:=(f[i,j] mod 1000007+f[i-1,j-k] mod1000007) mod 1000007;
  writeln(f[n,m]);
end.

版权属于: Chris
原文地址: http://blog.sina.com.cn/s/blog_83ac6af80102v5pe.html
转载时必须以链接形式注明原始出处及本声明。
0 0
原创粉丝点击