一个问题(警示后人)
查看原帖
一个问题(警示后人)
377969
george0929楼主2023/4/5 16:57

RT,int函数不写return会爆零吗?

0分:

#include<bits/stdc++.h>
using namespace std;
struct node{
	int l,r;
}gn[100005],gw[100005];
typedef pair<int, int> P;
bool cmp(node a,node b){
	return a.l<b.l;
}
int n,m1,m2,res1[100005],res2[100005];
priority_queue<P,vector<P>,greater<P> > q1;
priority_queue<int,vector<int>,greater<int> > q2;
int ck(node *t,int m,int *res){
	while(!q1.empty()){
		q1.pop();
	}
	while(!q2.empty()){
		q2.pop();
	}
	for(int i=1;i<=n;i++){
		q2.push(i);
	}
	for(int i=1;i<=m;i++){
		while(!q1.empty()&&t[i].l>=q1.top().first){
			q2.push(q1.top().second);
			q1.pop();
		}
		if(!q2.empty()){
			res[q2.top()]++;
			q1.push(make_pair(t[i].r,q2.top()));
			q2.pop();
		}
	}
	for(int i=1;i<=n;i++){
		res[i]+=res[i-1];
	}
}
int main(){
	cin>>n>>m1>>m2;
	for(int i=1;i<=m1;i++){
		scanf("%d%d",&gn[i].l,&gn[i].r);
	}
	for(int i=1;i<=m2;i++){
		scanf("%d%d",&gw[i].l,&gw[i].r);
	}
	sort(gn+1,gn+m1+1,cmp);
	sort(gw+1,gw+m2+1,cmp);
	ck(gn,m1,res1);
	ck(gw,m2,res2);
	int mx=0;
	for(int i=0;i<=n;i++){
		mx=max(mx,res1[i]+res2[n-i]);
	}
	cout<<mx<<endl;
}

100分:

#include<bits/stdc++.h>
using namespace std;
struct node{
	int l,r;
}gn[100005],gw[100005];
typedef pair<int, int> P;
bool cmp(node a,node b){
	return a.l<b.l;
}
int n,m1,m2,res1[100005],res2[100005];
priority_queue<P,vector<P>,greater<P> > q1;
priority_queue<int,vector<int>,greater<int> > q2;
int ck(node *t,int m,int *res){
	while(!q1.empty()){
		q1.pop();
	}
	while(!q2.empty()){
		q2.pop();
	}
	for(int i=1;i<=n;i++){
		q2.push(i);
	}
	for(int i=1;i<=m;i++){
		while(!q1.empty()&&t[i].l>=q1.top().first){
			q2.push(q1.top().second);
			q1.pop();
		}
		if(!q2.empty()){
			res[q2.top()]++;
			q1.push(make_pair(t[i].r,q2.top()));
			q2.pop();
		}
	}
	for(int i=1;i<=n;i++){
		res[i]+=res[i-1];
	}
	return 0;
}
int main(){
	cin>>n>>m1>>m2;
	for(int i=1;i<=m1;i++){
		scanf("%d%d",&gn[i].l,&gn[i].r);
	}
	for(int i=1;i<=m2;i++){
		scanf("%d%d",&gw[i].l,&gw[i].r);
	}
	sort(gn+1,gn+m1+1,cmp);
	sort(gw+1,gw+m2+1,cmp);
	ck(gn,m1,res1);
	ck(gw,m2,res2);
	int mx=0;
	for(int i=0;i<=n;i++){
		mx=max(mx,res1[i]+res2[n-i]);
	}
	cout<<mx<<endl;
}

两段代码只是37行差了一个return 0,并且0分代码下载数据后在洛谷IDE上运行也是能通过的,但是交上去就RE了QWQ。

2023/4/5 16:57
加载中...