脑子嗡嗡的
  • 板块灌水区
  • 楼主fanxing1124
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/1 09:25
  • 上次更新2023/11/2 16:51:13
查看原帖
脑子嗡嗡的
778970
fanxing1124楼主2023/10/1 09:25

p7677 打了一大堆代码,最后只得了个14分RE, 代码一大堆都看晕了,大佬帮我看一下吧QWQ

#include<bits/stdc++.h>
#define uf(x,y,z) for(int x=y;x<=z;x++)
#define df(x,y,z) for(int x=y;x>=z;x--)
#define int long long 
#define r read()
#define w(x) write(x)
using namespace std;
int n,m,bo;
struct node
{
	int t[2];
	int now;
}a[300010];
map<int,int>ma;
map<int,bool>mb;
int read()
{
	int x=0,t=1;
	char ch=getchar();
	while(ch<'0'||ch>'9')
	{
		if(ch=='-')t=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		x=(x<<1)+(x<<3)+(ch-48);
		ch=getchar();
	}
	return x*t;
} 
void write(int x)
{
	if(x<0)
	{
		putchar('-');
		x=-x;
	}
	if(x>9)write(x/10);
	putchar(x%10+'0');
}
bool dfs(int x)
{
	if(mb[x])return false;
	if(!ma[a[ma[x]].t[!a[ma[x]].now]])
	{
		swap(ma[a[ma[x]].t[a[ma[x]].now]],ma[a[ma[x]].t[!a[ma[x]].now]]);
		a[ma[x]].now!=a[ma[x]].now;
	}
	else 
	{
		mb[x]=true;
		if(dfs(a[ma[x]].t[!a[ma[x]].now]))
		{
			swap(ma[a[ma[x]].t[a[ma[x]].now]],ma[a[ma[x]].t[!a[ma[x]].now]]);
			a[ma[x]].now!=a[ma[x]].now;
			mb[x]=false;
			return true;
		}
		else 
		{
			mb[x]=false;
			return false;
		}
	}
} 
signed main() 
{
	n=r;m=r;
	uf(i,1,n)
	{
		bo=0;
		a[i].t[0]=r;a[i].t[1]=r;
		if(!ma[a[i].t[0]])
		{
			ma[a[i].t[0]]=i;
			a[i].now=0;
			bo=1;
		}
		else if(!ma[a[i].t[1]])
		{
			ma[a[i].t[1]]=i;
			a[i].now=1;
			bo=1;
		}
		else if(dfs(a[i].t[0]))
		{
			ma[a[i].t[0]]=i;
			a[i].now=0;
			bo=1;
		}
		else if(dfs(a[i].t[1]))
		{
			ma[a[i].t[1]]=i;
			a[i].now=1;
			bo=1;
		}
		if(bo)
		{
			puts("LADICA");
		}
		else puts("SMECE");
	}
    return 0;
}
2023/10/1 09:25
加载中...