P3545HUR-Warehouse StoreP4053建筑抢修(反悔贪心、堆)
生活随笔
收集整理的這篇文章主要介紹了
P3545HUR-Warehouse StoreP4053建筑抢修(反悔贪心、堆)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解析
兩道很像的題
不能說相似,只能說是一模一樣
感覺有火車載客的影子
想到開個堆來維護
在供不應求時彈出要求最高的即可
T1還得輸出方案針麻煩
代碼
你會發現幾乎一毛一樣
T1
#include<bits/stdc++.h>const int N=3e5+100; const int M=2e3+100; const int mod=1e9+7; #define ll long long #define ull unsigned long long #define debug(...) fprintf(stderr,__VA_ARGS__) using namespace std; inline ll read() {ll x(0),f(1);char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=(x<<1)+(x<<3)+c-'0';c=getchar();}return x*f; }int n,m;#define pr pair<int,int> #define mkp make_pair priority_queue<pr>q; int ans; ll now,a[N],b[N],tot; bool vis[N]; int main(){ #ifndef ONLINE_JUDGEfreopen("a.in","r",stdin);freopen("a.out","w",stdout); #endifn=read();for(int i=1;i<=n;i++) a[i]=read();for(int i=1;i<=n;i++) b[i]=read();for(int i=1;i<=n;i++){ans++;q.push(mkp(b[i],i));tot+=a[i];now+=b[i];vis[i]=1;while(now>tot){pr o=q.top();q.pop();now-=o.first;ans--;vis[o.second]=0;}}printf("%d\n",ans);for(int i=1;i<=n;i++){if(vis[i]) printf("%d ",i);}return 0; } /*5 37 1 4 1 9 1 3 5 31 1 4 22 3 5 */T2
#include<bits/stdc++.h>const int N=2e5+100; const int M=2e3+100; const int mod=1e9+7; #define ll long long #define ull unsigned long long #define debug(...) fprintf(stderr,__VA_ARGS__) using namespace std; inline ll read() {ll x(0),f(1);char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=(x<<1)+(x<<3)+c-'0';c=getchar();}return x*f; }int n,m;priority_queue<ll>q; struct node{ll cost,ed;bool operator < (const node o)const{return ed<o.ed;} }p[N]; int main(){ #ifndef ONLINE_JUDGEfreopen("a.in","r",stdin);freopen("a.out","w",stdout); #endifn=read();for(int i=1;i<=n;i++) p[i]=(node){read(),read()};sort(p+1,p+1+n);int ans(0);ll sum(0);for(int i=1;i<=n;i++){sum+=p[i].cost;q.push(p[i].cost);ans++;while(sum>p[i].ed){sum-=q.top();q.pop();ans--;}}printf("%d\n",ans);return 0; } /*5 37 1 4 1 9 1 3 5 31 1 4 22 3 5 */ 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的P3545HUR-Warehouse StoreP4053建筑抢修(反悔贪心、堆)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: project隐藏列如何显示
- 下一篇: 模板:扫描线