话说题解这种东西网上一打一打的。我纯粹是打打酱油。
【机器翻译 translate】
水题。 不会做的自己找豆腐。
var p,m,n,now,i,x,ans:longint;
f,a:array[0..1005]of longint;
begin
read(m,n);
now:=0; p:=0;
for i:=1 to n do
begin
read(x);
if f[x]<>0 then continue;
inc(ans);
if now-p>=m then
begin
inc(p);
f[a[p]]:=0;
end;
inc(now);
a[now]:=x;
f[x]:=1;
end;
write(ans);
end.
【乌龟棋 tortoise】
这道题 我是用动规做的。 也是一道很简单的题。
因为只有四种卡片,所以直接用f(i,j,k,q)表示卡片1、2、3、4 四种卡片用的张数。
方程为:
F(I,j,k,q):=max(f(i-1,j,k,q),f(i,j-1.k,q),f(I,j,k-1,q),f(I,j,k,q-1))
+a(i+j*2+k*3+q*4);
var f:array[-1..40,-1..40,-1..40,-1..40]of longint;
a:array[0..350]of longint;
c:array[1..4]of longint;
x,y,z,p,u,n,m,i:longint;
function max(a,b,c,d:longint):longint;
begin
if a>b then max:=a else max:=b;
if c>max then max:=c;
if d>max then max:=d;
end;
begin
read(n,m);
for i:=1 to n do read(a[i]);
for i:=1 to m do
begin
read(x);
inc(c[x]);
end;
for x:=0 to c[1] do
for y:=0 to c[2] do
for z:=0 to c[3] do
for p:=0 to c[4] do
begin
if (x=0)and (y=0) and (z=0) and (p=0) then continue;
f[x,y,z,p]:=max(f[x-1,y,z,p],f[x,y-1,z,p],f[x,y,z-1,p],f[x,y,z,p-1])+a[x+y*2+z*3+p*4+1];
end;
write(f1,c[2],c[3],c[4]]+a[1]);
end.
【关押罪犯 prison】
这道题 有两种做法 Read More…