Hack数据错了求调

P1315 [NOIP2011 提高组] 观光公交

有好心人给一下hack数据吗QWQ
by Bernie_qwq @ 2022-10-02 11:03:45


蝴蝶a
by JustForYourself @ 2022-10-02 12:47:33


@[JustForYourself](/user/809531) ?
by Bernie_qwq @ 2022-10-02 19:07:11


我的代码只对了hack点,可以参考下 我这先处理当k=0时的情况~~(但是也错了)~~再最后进行统一处理 ~~反正就是有一大堆错误,但是hack点对了~~ ```cpp #include<bits/stdc++.h> using namespace std; int n,m,k,d[1001],f[1001]; long long ans; struct tour { int t,x,y; friend bool operator<(tour x,tour y){return x.y>y.y;} }a[10010]; priority_queue<tour>q; bool cmp(tour x,tour y) { return x.x<y.x || x.x==y.x; } int main() { //freopen("bus.in","r",stdin); ios::sync_with_stdio(false); cin>>n>>m>>k; for(int i=1;i<n;i++) cin>>d[i]; for(int i=1;i<=m;i++) cin>>a[i].t>>a[i].x>>a[i].y; sort(a+1,a+m+1,cmp); int t=0,pos=a[1].x; for(int i=1;i<=m;i++) { if(a[i].x>pos) { for(int j=pos;j<a[i].x;j++) t+=d[j]; pos=a[i].x; } q.push(a[i]); while(!q.empty() && pos>=q.top().y) { ans+=t-q.top().t; q.pop(); } if(t<a[i].t)t=a[i].t; } while(!q.empty()) { tour x=q.top();q.pop(); if(x.y>pos) { for(int j=pos;j<x.y;j++) t+=d[j]; pos=x.y; } if(pos>=x.y) ans+=t-x.t; } for(int i=1;i<=m;i++) for(int j=a[i].x;j<a[i].y;j++) f[j]++; while(k>0)//第i条路有f[i]人走 { int mx=0; for(int i=1;i<n;i++) mx=max(mx,f[i]); for(int i=1;i<n;i++) if(f[i]==mx) { if(k<d[i]) ans-=k*f[i]; else ans-=d[i]*f[i]; k-=d[i]; f[i]=0; break; } } cout<<ans; return 0; } ``````
by oulii @ 2023-10-12 12:30:00


|