社区讨论
样例全过但是洛谷测爆零了……
P7913[CSP-S 2021] 廊桥分配参与者 9已保存回复 15
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 15 条
- 当前快照
- 1 份
- 快照标识符
- @lobi18e7
- 此快照首次捕获于
- 2023/10/29 21:20 2 年前
- 此快照最后确认于
- 2023/11/04 02:33 2 年前
还有救吗还有救吗救救孩子真的要睡不着了
CPP#include<iostream>
#include<cstdio>
#include<utility>
#include<queue>
using namespace std;
int n,m1,m2,tmp1,tmp2,cnt,cntmax,ldm1,ldm2,cntld;
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >t1_0;
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >t2_0;
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >t1;
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >t2;
pair<int,int> tmp;
int main()
{
freopen("airport.in","r",stdin);
freopen("airport.out","w",stdout);
cin>>n>>m1>>m2;
if(n>=m1+m2){cout<<m1+m2<<endl;return 0;}
for(int i=0;i<m1;++i)
{
cin>>tmp1>>tmp2;
t1_0.push(make_pair(tmp1,tmp2));
}
for(int i=0;i<m2;++i)
{
cin>>tmp1>>tmp2;
t2_0.push(make_pair(tmp1,tmp2));
}
for(ldm1=0;ldm1<=m1&&ldm1<=n;ldm1++)
{
ldm2=n-ldm1;
t1=t1_0;t2=t2_0;cntld=0;cnt=0;
//cout<<ldm1<<endl;
if(ldm1>0&&ldm1<m1)
{
priority_queue<int,vector<int>,greater<int> >ld;
tmp=t1.top();
t1.pop();
ld.push(tmp.second);
++cntld;++cnt;//cout<<tmp.first<<" "<<tmp.second<<endl;
for(int i=1;i<m1;i++)
{
tmp=t1.top();
t1.pop();
while(tmp.first>ld.top()&&cntld>0)
{
ld.pop();--cntld;
}
if(cntld<ldm1){ld.push(tmp.second);++cntld;++cnt;/*cout<<tmp.first<<" "<<tmp.second<<endl;ptld();*/}
}
}
else if(ldm1==m1)cnt+=m1;
cntld=0;
//cout<<ldm2<<endl;
if(ldm2>0&&ldm2<m2)
{
priority_queue<int,vector<int>,greater<int> >ld;
tmp=t2.top();
t2.pop();
ld.push(tmp.second);
++cntld;++cnt;//cout<<tmp.first<<" "<<tmp.second<<endl;
for(int i=1;i<m1;i++)
{
tmp=t2.top();
t2.pop();
while(tmp.first>ld.top()&&cntld>0)
{
ld.pop();--cntld;
}
if(cntld<ldm2){ld.push(tmp.second);++cntld;++cnt;/*cout<<tmp.first<<" "<<tmp.second<<endl;*/}
}
}
else if(ldm2>=m2)cnt+=m2;
if(cnt>cntmax)cntmax=cnt;
//cout<<cnt<<endl<<endl;
}
cout<<cntmax<<endl;
}
回复
共 15 条回复,欢迎继续交流。
正在加载回复...