不知为何编译错误 玄关
  • 板块灌水区
  • 楼主nUII
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/12/25 16:58
  • 上次更新2024/12/25 21:23:29
查看原帖
不知为何编译错误 玄关
1414002
nUII楼主2024/12/25 16:58
#include <bits/stdc++.h>
using namespace std;
int q[10000000][4];
struct asdf{
	int _10,_7,_3;
};
int main()
{
	q[0][0]=10;
	q[0][1]=0;
	q[0][2]=0;
	q[0][3]=-1;
	set<asdf> a;
	int f=0,i=0;
	asdf b;
	int _num;
	while(true)
	{
		b._10=q[f][0];
		b._7=q[f][1];
		b._3=q[f][2];
		_num=q[f][3];
		if(a.count(b))
		{
			continue;
		}
		if((b._10==5&&b._7==5)||(b._10==5&&b._3==5)||(b._3==5&&b._7==5))
		{
			break;
		}
		a.insert(b);
		int c;
		if(b._10>0&&b._7<7)
		{
			i++;
			c=min(b._10,7-b._7);
			q[i][0]=b._10-c;
			q[i][1]=b._7+c;
			q[i][2]=b._3;
			q[i][3]=f;
		}
		if(b._10>0&&b._3<3)
		{
			i++;
			c=min(b._10,3-b._3);
			q[i][0]=b._10-c;
			q[i][1]=b._7;
			q[i][2]=b._3+c;
			q[i][3]=f;
		}
		if(b._7>0&&b._3<3)
		{
			i++;
			c=min(b._7,3-b._3);
			q[i][0]=b._3;
			q[i][1]=b._7-c;
			q[i][2]=b._3+c;
			q[i][3]=f;
		}
		if(b._7>0&&b._10<10)
		{
			i++;
			c=min(10-b._10,b._7);
			q[i][0]=b._10+c;
			q[i][1]=b._7-c;
			q[i][2]=b._3;
			q[i][3]=f;
		}
		if(b._3>0&&b._10<10)
		{
			i++;
			c=min(10-b._10,b._3);
			q[i][0]=b._10+c;
			q[i][1]=b._7;
			q[i][2]=b._3-c;
			q[i][3]=f;
		}
		if(b._3>0&&b._7<7)
		{
			i++;
			c=min(b._3,7-b._7);
			q[i][0]=b._3;
			q[i][1]=b._7+c;
			q[i][2]=b._3-c;
			q[i][3]=f;
		}
		f++;
	}
	stack<int> d;
	int n=_num;
	while(n+1)
	{
		d.push(n);
		n=q[n][3];
	}
	while(d.size())
	{
		cout<<d.top()<<endl;
		d.pop();
	}
}

直接跳转到了一个函数定义

2024/12/25 16:58
加载中...