- 过河
- 10 年前 @
初始化问题,看注释,Vijos的评测机没问题?你确定?
#include <cstdio>
#include <cstring>
#include <climits>
#include <algorithm>
inline int min(int a,int b)
{
return a<b?a:b;
}
int f[20],a[200],L,S,T,M,p,c,ans=INT_MAX,now,tot;
int main()
{
int i,j;
scanf("%d%d%d%d",&L,&S,&T,&M);
for (i=0;i<M;i++)
scanf("%d",&a[i]);
if (S==T)
{
ans=0;
for (i=0;i<M;i++)
if (a[i]%T==0)
ans++;
printf("%d",ans);
return 0;
}
std::sort(a,a+M);
for(i=1;i<=T;i++)//初始化,用i<Tcase#3就wrong,但是f(T)是绝对用不到的,所有的f都modT了
{
f[i]=INT_MAX;
}
f[0]=0; now=0; tot=0;
for (i=1;i<L+T;i++)
{
for (j=S;j<=T;j++)
{
f[i%T]=min(f[i%T],f[(i-j+T)%T]);
}
if (a[p]==i)
{
f[i%T]++;
p++;
}
if (now==f[i%T])
{
tot++;
now=f[(i+1)%T];
}
else
{
now=f[i%T];
tot=0;
}
if (tot==T)
{
i+=(min(a[p]-T,L)-i)/T*T;
tot = 0;
}
}
for (i=0;i<T;i++)
{
ans=min(ans,f[i]);
}
printf("%d\n",ans);
return 0;
}
4 条评论
-
doc LV 10 MOD @ 10 年前
twd2把贵程序反复修改提交了15次,早就清楚了一切。
所以....https://vijos.org/records/?pid=1002
还是小心别被打脸.... -
10 年前@
话不要乱说。
到时候打脸了就不好了。 -
10 年前@
话不要乱说。
到时候打脸了就不好了。 -
10 年前@
实验表明,是你的问题。
- 1