我为啥TLE了啊

P1190 [NOIP2010 普及组] 接水问题

把 `while(cur!=n)` 改成 `while(cur<=n)`: ```cpp #include<bits/stdc++.h> using namespace std; typedef long long ll; int n,m; int a[10000005]; int main(){ int cur,ti=0; cin>>n>>m; cur=m; for(int i=1;i<=n;i++){ cin>>a[i]; } while(cur<=n){ int minn=2e9; for(int i=1;i<=m;i++){ minn=min(minn,a[i]); } ti+=minn; for(int i=1;i<=m;i++){ a[i]-=minn; if(a[i]==0) a[i]=a[++cur]; } } int maxn=-2e9; for(int i=1;i<=m;i++){ maxn=max(a[i],maxn); } cout<<ti+maxn<<endl; return 0; } ```
by Endline @ 2023-10-13 12:35:40


谢大佬,已关,为什么改一下就行了呢
by Syncc @ 2023-10-13 14:13:44


@[Razer_System](/user/766788) 因为你误把while里应该填的运行条件写成了终止条件,运行看似可以编译,但却是死循环,就TLE了。
by alanbecker @ 2023-12-13 19:56:50


|