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。