vijos P1062 迎春舞会之交谊舞

这题被归类为栈,所以用栈来做咯;

总体思想还是括号匹配,不过关键在于如何求出相互匹配的两人中夹杂着多少个男生,我的方法是定义结构体记录每个人左边男生的个数

#include
#include
#define maxn 1500+5
using namespace std;
struct stu
{
	int a,sex;//a位,该人(无论男女)左边男生的个数,sex为该人的性别; 
};
stackroot;
int f[maxn];//读入数据的储存 
int g[maxn];// 记录第i个女生与她前一个女生之间夹着多少个男生; 
int re[maxn];//记录结果 
int main()
{
	int n;
	while(cin>>n)
	{
		f[0]=0;
		for(int i=1;i<=n;i++) cin>>f[i];
		for(int i=1;i<=n;i++) g[i]=f[i]-f[i-1];
		while(root.size()) root.pop();//清空 
		int sum=0;
		for(int i=1;i<=n;i++)
		{
			for(int j=0;j


你可能感兴趣的:(vijos,栈)