大佬看一下为何只有75分

P1083 [NOIP2012 提高组] 借教室

@[PerfectJames](/space/show?uid=66803) 同学,你的排版...
by aminoas @ 2019-04-11 18:42:17


$\tiny\color{white}\text{因为你WA了五个点(逃~}$
by ArachnidaQueen @ 2019-04-11 18:50:38


同学,你的排版...
by AC自动机_ @ 2019-04-11 19:12:21


建议您按一下ctrl shift a
by shao0320 @ 2019-04-11 19:30:14


```cpp #include <bits/stdc++.h> using namespace std; const int N=1e7+5; int n,m; int r[N],d[N],b[N],c[N],diff[N],need[N]; bool check(int x) { memset(diff,0,sizeof(diff)); for(int i=1;i<=x;i++){ diff[b[i]]+=d[i]; diff[c[i]+1]-=d[i]; } for(int i=1;i<=n;i++){ need[i]=need[i-1]+diff[i]; if(need[i]>r[i]) return 0; } return 1; } int main() { cin>>n>>m; for(int i=1;i<=n;i++) cin>>r[i]; for(int i=1;i<=m;i++) cin>>d[i]>>b[i]>>c[i]; if(check(m)){ cout<<0; return 0; } int l=1,r=m; while(l<r){ int mid=(l+r)>>1; if(check(mid)) l=mid+1;else r=mid-1; } cout<<-1<<endl; cout<<l<<endl; return 0; } ```
by PerfectJames @ 2019-04-14 08:01:42


``` #include <bits/stdc++.h> using namespace std; const int N=1e7+5; int n,m; int r[N],d[N],b[N],c[N],diff[N],need[N]; bool check(int x) { memset(diff,0,sizeof(diff)); for(int i=1;i<=x;i++){ diff[b[i]]+=d[i]; diff[c[i]+1]-=d[i]; } for(int i=1;i<=n;i++){ need[i]=need[i-1]+diff[i]; if(need[i]>r[i]) return 0; } return 1; } int main() { cin>>n>>m; for(int i=1;i<=n;i++) cin>>r[i]; for(int i=1;i<=m;i++) cin>>d[i]>>b[i]>>c[i]; if(check(m)){ cout<<0; return 0; } int l=1,r=m; while(l<r){ int mid=(l+r)>>1; if(check(mid)) l=mid+1;else r=mid-1; } cout<<-1<<endl; cout<<l<<endl; return 0; }
by PerfectJames @ 2019-04-14 08:31:04


|