o(n)做法80分求调
查看原帖
o(n)做法80分求调
1284632
coding2024楼主2024/8/1 09:56
//括号法
#include<iostream>
using namespace std;

const int N=1e4+10;
char a[N];

int main()
{
	int n,m;
	cin>>n>>m;
	
	while(m--)
	{
		int x,y;
		cin>>x>>y;
		
		if(x!=y)
		{
			if(a[x]==')')a[x]='\0';
			else a[x]='(';
			
			if(a[y]=='(')a[y]='\0';
			else a[y]=')';
		}
		else 
		{
			if(a[x]=='\0')a[x]='#';
		}
	}
	
	int ans=0,sum=0;
	for(int i=0;i<=n;i++)
	{
		if(a[i]=='(')sum++;
		
		if(!sum&&a[i]!='#')ans++;	
		
		if(a[i]==')')sum--;
	}
	//for(int i=0;i<=n;i++)cout<<a[i];
	cout<<ans<<endl;
	
	return 0;
}
2024/8/1 09:56
加载中...