ural 1061 Buffer Manager

    技术2025-01-22  9

    我靠......这道题花费了我整整一天的时间, 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; }

    最新回复(0)