切换到宽版
  • 8129阅读
  • 2回复

noip2002试题 [复制链接]

上一主题 下一主题
离线liqinyi
 
只看楼主 倒序阅读 0 发表于: 2006-11-11
请问谁有2002noip选数的答案
离线121371490
只看该作者 1 发表于: 2007-11-06
const maxn=20;
var
    a:array[1..maxn] of integer;
    n,k,i,j,count:integer;
    x:array[1..maxn] of longint;
    sum:longint;
function prime(n:longint):boolean;
var i:integer;flag:boolean;
begin
      if n=2 then prime:=true
      else if n mod 2=0 then prime:=false
      else
        begin
              flag:=true;i:=3;
              while flag and (i<=n div 2) do begin
                    if n mod i=0 then flag:=false;i:=i+2;end;
              prime:=flag;
        end;
end;
begin
    readln(n,k);
    for i:=1 to n do read(x);
    count:=0;
    for i:=1 to k do a:=i;
    i:=k;
    while (i>0) do begin
        sum:=0;
        for i:=1 to k do sum:=sum+x[a];
        if prime(sum) then
              count:=count+1;
        i:=k;
        while (i>0) and (a=n-k+i) do i:=i-1;
        if (i>0) then begin
            a:=a+1;
            for j:=i+1 to k do a[j]:=a[j-1]+1;end;
    end;
    writeln(count);
end.
离线雪域$枫
只看该作者 2 发表于: 2007-11-06
好东西。。。。我一直不会生成组合。。。多谢楼上哈~
GDKOI2008......STRUGGLE.........
快速回复
限100 字节
 
上一个 下一个