- 过河
- 2015-01-06 09:30:09 @
初始化问题,看注释,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 @ 2015-01-08 15:33:06
twd2把贵程序反复修改提交了15次,早就清楚了一切。
所以....https://vijos.org/records/?pid=1002
还是小心别被打脸.... -
2015-01-07 20:00:59@
话不要乱说。
到时候打脸了就不好了。 -
2015-01-06 21:47:29@
话不要乱说。
到时候打脸了就不好了。 -
2015-01-06 20:55:58@
实验表明,是你的问题。
- 1