社区讨论

50分STL做法求助QwQ

P1056[NOIP 2008 普及组] 排座椅参与者 6已保存回复 17

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
17 条
当前快照
1 份
快照标识符
@mi7z220b
此快照首次捕获于
2025/11/21 05:57
4 个月前
此快照最后确认于
2025/11/21 06:47
4 个月前
查看原帖
用的是STL中的map(好像自带排序)
CPP
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;
typedef map<int,int>::iterator mite;

map<int,int> hang,lie;

int x1,x2,y1,y2;
int d;		//交头接耳对数
int m,n;	//m行n列
int k,l;	//k横l纵

int main()
{
	cin>>m>>n>>k>>l>>d;

	for(int i=0;i<d;i++)
	{
		cin>>x1>>y1>>x2>>y2;
		if(y1==y2)//竖着一对(行)
		{
			hang[min(x1,x2)]++;
			//表示此格子上方的直线
		}
		if(x1==x2)//横着一对(列)
		{
			lie[min(y1,y2)]++;
			//表示此格子右方的直线
		}
	}
	//map自带排序
	mite ite;
	int i=0;
	for(ite=hang.begin();ite!=hang.end() && i<k;ite++)
		cout<<ite->first<<" ";
	cout<<endl;

	i=0;
	for(ite=lie.begin();ite!=lie.end() && i<l;ite++)
		cout<<ite->first<<" ";

	return 0;
}

回复

17 条回复,欢迎继续交流。

正在加载回复...