=
  • 板块学术版
  • 楼主Cute_QiQi
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/9/17 19:33
  • 上次更新2024/9/17 22:16:56
查看原帖
=
1286053
Cute_QiQi楼主2024/9/17 19:33
#include<bits/stdc++.h>
using namespace std;
#define int long long
void read(int &n)
{
    int x=0,F=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')
            F=-1;
        ch=getchar();
    }
    while(ch>='0' && ch<='9')
        x=x*10+ch-'0',ch=getchar();
    n=x*F;
}
//inline int read2()
//{
//    int x=0,F=1;
//    char ch=getchar();
//    while(ch<'0'||ch>'9')
//    {
//        if(ch=='-')
//            F=-1;
//        ch=getchar();
//    }
//    while(ch>='0' && ch<='9')
//        x=x*10+ch-'0',ch=getchar();
//    return x*F;
//}
void write(int x)
{
    if(x<0)
        putchar('-'),x=-x;
    if(x>9)
        write(x/10);
    putchar(x%10+'0');
    return;
}
//struct Node{
//	int u,v,w;
//};
//Node H[32];
struct Node{
	vector<int> U,V,W;
};
//vector<int> u,v,w;
int su=0x7FFFFFFF;
map<Node,bool> vis;
void H(int n,int s,Node N){
	if(N.W.size()==3)
	{
		su=min(su,s);
		return;
	}
	if(N.U.size()&&(N.V.empty() or N.U.front()<N.V.front()))
	{
		N.V.insert(N.V.begin(),N.U.front());
		N.U.erase(N.U.begin());
		if(vis.find(N)==vis.end() or vis[N]==0)
		{
			vis[N]=1;
			H(n,s+1,N);
			vis[N]=0;
		}
		N.U.insert(N.U.begin(),N.V.front());
		N.V.erase(N.V.begin());
	}
	if(N.V.size()&&(N.W.empty() or N.V.front()<N.W.front()))
	{
		N.W.insert(N.W.begin(),N.V.front());
		N.V.erase(N.V.begin());
		if(vis.find(N)==vis.end() or vis[N]==0)
		{
			vis[N]=1;
			H(n,s+1,N);
			vis[N]=0;
		}
		N.V.insert(N.V.begin(),N.W.front());
		N.W.erase(N.W.begin());
	}
	if(N.W.size()&&(N.U.empty() or N.W.front()<N.U.front()))
	{
		N.U.insert(N.U.begin(),N.W.front());
		N.W.erase(N.U.begin());
		if(vis.find(N)==vis.end() or vis[N]==0)
		{
			vis[N]=1;
			H(n,s+1,N);
			vis[N]=0;
		}
		N.W.insert(N.W.begin(),N.U.front());
		N.U.erase(N.U.begin());
	}
}
signed main(){
int n;
	read(n);
	vector<int> u,v,w;
	for(int i=1; i<=n; ++i)
	{
		u.push_back(i);
	}
	Node node;
	node.U=u;
	node.V=v;
	node.W=w;
	H(n,0,node);
	write(su);
	return 0;
}

这段程序看似没有问题,但是。。

请问这个莫名出现的 stl_function 是什么

(不是任何题目

2024/9/17 19:33
加载中...