CF629B Far Relative’s Problem


题目传送门

思路:

大模拟水题,枚举男和女可以参加派对的时间就行了。

AC 代码:

#include<bits/stdc++.h>
using namespace std;
char ch;
int n,ans=-1,x,y,men[1500],women[1500];//定义 men[i] 为第 i 天可参加的男生人数, women[i] 为第 i 天可参加的女生人数
int main(){
	cin>>n;//输入
	for(int i=1;i<=n;i++){
		cin>>ch>>x>>y;//输入 
		if(ch=='M'){//男 
			for(int i=x;i<=y;i++)men[i]++;//第 i 天的男生可参加人数 +1 
		}else{//女 
			for(int i=x;i<=y;i++)women[i]++;//第 i 天的女生可参加人数 +1 
		}
	}
	for(int i=1;i<=366;i++)ans=max(ans,min(men[i],women[i])*2);//枚举天数求可参加人数,想一下为什么这里要求最小值然后 *2
	cout<<ans<<endl;//输出
	return 0;//完美结束
} 

思考题:

因为男女人数要相等,也就是一一匹配(设男生人数为 $n$ ,女生人数为 $m$ )

所以能匹配的对数为: $\min(m,n)$

那么可参加的人数就是: $\min(m,n)\times2$


文章作者: alex_liu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 alex_liu !
  目录