求助巨佬!!!蒟蒻不知道自己代码问题出现在哪里了qwq...跪谢巨佬!!!
查看原帖
求助巨佬!!!蒟蒻不知道自己代码问题出现在哪里了qwq...跪谢巨佬!!!
751403
xzjxzjxzj楼主2023/8/24 00:51

蒟蒻斗胆尝试CSP-S第一题qwq 不知道哪里写错了(悲

这里是蒟蒻的错误代码

#include<bits/stdc++.h>
using namespace std;

int n,m1,m2;
int ans=0;

struct Time
{
	int a;
	int b;
};
Time t1[10005],t2[10005];

bool cmp(Time x,Time y)
{
	return x.a<y.a;
}

int main()
{
	cin>>n>>m1>>m2;
	for(int i=1;i<=m1;i++)
	{
		cin>>t1[i].a>>t1[i].b;
	}
	for(int i=1;i<=m2;i++)
	{
		cin>>t2[i].a>>t2[i].b;
	}
	sort(t1+1,t1+m1+1,cmp);
	sort(t1+1,t1+m1+1,cmp);
	
	for(int z=1;z<=n;z++)
	{
		//国内分到z个位置 
		int cnt1=1;//目前已占用的位置数 
		int ans1=0;//进入远机位的飞机数 
		int r1[10005]; 
		r1[1]=t1[1].b;
		
		for(int i=2;i<=m1;i++)//枚举飞机
		{
			int minn=0x3f3f3f3f,p=-1;
			for(int j=1;j<=cnt1;j++)//枚举位置 
			{
				if(t1[i].a>=r1[j]&&r1[j]<minn)
				{
					minn=r1[j];
					p=j;
				}
			}
			if(p!=-1)
			{
				r1[p]=t1[i].b;
			}
			else if(cnt1<z)
			{
				cnt1++;
				r1[cnt1]=t1[i].b;
			}
			else
				ans1++;
		}
		
		int cnt2=1;//目前已占用的位置数 
		int ans2=0;
		int r2[10005]; 
		r2[1]=t2[1].b;
		
		for(int i=2;i<=m2;i++)//枚举飞机
		{
			int minn=0x3f3f3f3f,p=-1;
			for(int j=1;j<=cnt2;j++)//枚举位置 
			{
				if(t2[i].a>=r2[j]&&r2[j]<minn)
				{
					minn=r2[j];
					p=j;
				}
			}
			if(p!=-1)
			{
				r2[p]=t2[i].b;
			}
			else if(cnt2<n-z)
			{
				cnt2++;
				r2[cnt2]=t2[i].b;
			}
			else
				ans2++;
		}
		ans=min(ans,ans1+ans2);//不可以在循环内部定义ans 
	}
	cout<<m1+m2-ans<<endl;
	return 0;
}

跪谢巨佬!!!

2023/8/24 00:51
加载中...