社区讨论
求助,95ppt,第九个点WA!
P7913[CSP-S 2021] 廊桥分配参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lo7tjj38
- 此快照首次捕获于
- 2023/10/27 07:31 2 年前
- 此快照最后确认于
- 2023/10/27 07:31 2 年前
CPP
#include <bits/stdc++.h>
using namespace std;
#define F(i,a,b) for(int i=a;i<=b;++i)
#define N 100010
int n,m[2],cnt[2][N];
struct node
{
int x,y;
bool friend operator<(node p,node q) {return p.x<q.x;}
bool friend operator>(node p,node q) {return q<p;}
}a[2][N];
priority_queue<int,vector<int>,greater<int> > q1;
priority_queue<node,vector<node>,greater<node> > q2;
void solve(int t)
{
while(q1.size()) q1.pop();
while(q2.size()) q2.pop();
F(i,1,m[t]) q1.push(i);
F(i,1,m[t]) scanf("%d%d",&a[t][i].x,&a[t][i].y);
sort(&a[t][1],&a[t][m[t]+1]);
F(i,1,m[t])
{
while(q2.size()&&q2.top().x<a[t][i].x)
{
q1.push(q2.top().y);
q2.pop();
}
q2.push((node){a[t][i].y,q1.top()});
++cnt[t][q1.top()];
q1.pop();
}
F(i,1,m[t]) cnt[t][i]+=cnt[t][i-1];
}
int main()
{
scanf("%d%d%d",&n,&m[0],&m[1]);
int ans = 0;
solve(0);
solve(1);
F(i,0,n) ans=max(ans,cnt[0][i]+cnt[1][n-i]);
printf("%d",ans);
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...