您的位置:首页 > Web前端

ural 1061 Buffer Manager

2011-02-09 17:35 162 查看
我靠......这道题花费了我整整一天的时间, WA了无数次, 最后还是在奇异夸克大牛的指导下AC了.

原因很简单: 注意输入格式, 不只有一行.

我的队列方法和众人有点区别, 将'*'的价值设为非常大(这个值应该大于9*n, 但有不能太大, 否则越界了)

]#include<iostream>
using namespace std;
const __int64 INF=100000000;
char s[100100];
__int64 A[100100];
int n,k;
int mini=INF;
int flag;
int len=0;
int main()
{
int i,j;
scanf("%d%d",&n,&k);
while(scanf("%s",s+len)!=EOF)
{
len=strlen(s);
}
for(i=0;i<n;i++)
{
if(s[i]=='*')
{
A[i+1]=INF+A[i];
continue;
}
else
A[i+1]=s[i]-'0'+A[i];
}
for(i=k;i<=n;i++)
if(A[i]-A[i-k]<mini)
{
mini=A[i]-A[i-k];
flag=i-k+1;
}
printf("%d/n",flag);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: