蒟蒻求助!!!
查看原帖
蒟蒻求助!!!
1019983
Czero_2023楼主2024/5/4 10:00

五个RE两个WA

贪心

#include <iostream>
#include <algorithm>
using namespace std;
int v[1002][1002];
struct str{
	int cnt,num;
}a[1002],b[1002];
bool cmp(str x,str y)//排大小 
{
	return x.cnt>=y.cnt;
}
bool cmp2(str x,str y)//排顺序 
{
	return x.num<y.num;
}
int main()
{
	int m,n,k,l,d;
	cin>>m>>n>>k>>l>>d;
	for(int i=1;i<=d;i++)
	{
		int x1,y1,x2,y2;
		cin>>x1>>y1>>x2>>y2;
		if(x1<x2)v[x1][y1]++;
		else if(x2<x1)v[x2][y2]++;
		else if(y1<y2)v[x1][y1]+=2;
		else v[x2][y2]+=2;//1表示前后讲话
		//2表示左右讲话 3都有
		//统一标在前面和左边 
	}
	//a横过道 b纵过道 
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(v[i][j]==1||v[i][j]==3)a[i].cnt++;
			if(v[i][j]==2||v[i][j]==3)b[j].cnt++;
			a[i].num=i;b[j].num=j;
		}
	}
	sort(a+1,a+m,cmp);//排大小 
	sort(a+1,a+k+1,cmp2);//排顺序 
	sort(b+1,b+n,cmp);
	sort(b+1,b+l+1,cmp2);
	cout<<a[1].num;
	for(int i=2;i<=k;i++)cout<<" "<<a[i].num;
	cout<<endl;
	cout<<b[1].num;
	for(int i=2;i<=l;i++)cout<<" "<<b[i].num;//末尾无空格 
	return 0;
}
2024/5/4 10:00
加载中...