TLE了后三个,求助各位大佬,如何优化!!!HELP

P3662 [USACO17FEB] Why Did the Cow Cross the Road II S

这位同志,你这个优化了也是错的。。。TLE变成WA。直接给你写一个对的吧! ```c #include<bits/stdc++.h> using namespace std; int min(int a,int b){return a<b?a:b;} int n,k,b,vis[200000],sum[200000],ans=1e5;//ans随便给一个大数就行 signed main(void){//这个写int main()就行,本人爱玩花里胡哨的 cin>>n>>k>>b; for(register int i=1;i<=b;i++){//同样,register可以不写 int x; cin>>x; vis[x]=1; } for(register int i=1;i<=n;i++) sum[i]+=sum[i-1]+vis[i]; for(register int i=1;i<=n-k+1;i++) ans=min(ans,sum[i+k-1]-sum[i-1]); cout<<ans; } ``` 懂了???记得给个关注啊。
by PassName @ 2021-12-16 21:58:54


@[make123](/user/574850) 也直接给一个吧``` ``` #include<bits/stdc++.h> using namespace std; int _n=0,_m=0,_k=0,_ans=2147483647; int _a[1000000]; int main(){ cin>>_n>>_k>>_m; for(int i=0,x=0;i<_m;i++,_a[x]=1) cin>>x; for(int i=1,x=count(_a+1,_a+_k+1,1);i<=_n-_k+1;i+=x-_ans+1,x=count(_a+i,_a+_k+i,1)) _ans=min(x,_ans); cout<<_ans; }
by Nagligivaget @ 2022-04-10 20:01:35


@[单南松](/user/524911) 关注
by hwnsuqhs @ 2023-05-03 11:44:25


|