社区讨论
35分求调
P7913[CSP-S 2021] 廊桥分配参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhj3m8aq
- 此快照首次捕获于
- 2025/11/03 20:10 4 个月前
- 此快照最后确认于
- 2025/11/03 20:10 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int vis[1000001],viss[1000001];
struct point{
int num,lst;
}c[1000001],d[1000001];
struct node{
int a,b;
}qq[1000001],q[1000001];
int cmp(node a,node b){
return a.a<b.a;
}
int cmpp(point a,point b){
return a.num>b.num;
}
int main(){
int n,m,p,ans=0;
cin>>n>>m>>p;
for(int i=1;i<=m;i++){
cin>>q[i].a>>q[i].b;
}
for(int i=1;i<=p;i++){
cin>>qq[i].a>>qq[i].b;
}
sort(q+1,q+m+1,cmp);
sort(qq+1,qq+p+1,cmp);
int tot=0;
for(int i=1;i<=m;i++){
int k=0;
while(q[i].a<=c[++k].lst){
}
if(k>tot){
tot++;
c[tot].lst=q[i].b;
vis[i]=tot;
}
else{
c[k].lst=q[i].b;
vis[i]=k;
}
c[k].num++;
}
int tott=0;
for(int i=1;i<=p;i++){
int k=0;
while(qq[i].a<=d[++k].lst){
}
if(k>tott){
tott++;
d[tott].lst=qq[i].b;
viss[i]=tott;
}
else{
d[k].lst=qq[i].b;
viss[i]=k;
}
d[k].num++;
}
// sort(c+1,c+tot+1,cmpp);
// sort(d+1,d+tott+1,cmpp);
// cout<<tot<<" "<<tott<<"\n";
// for(int i=1;i<=tot;i++) cout<<c[i].num<<" ";
// for(int i=1;i<=tott;i++) cout<<d[i].num<<" ";
for(int l=1,r=1;l+r-1<=n;){
if(c[l].num>d[r].num){
ans+=c[l].num;
l++;
}
else{
ans+=d[r].num;
r++;
}
}
cout<<ans;
}
不考虑hack2TLE的情况
回复
共 0 条回复,欢迎继续交流。
正在加载回复...