1 条题解

  • 0
    @ 2021-6-15 13:05:30

    C++ :

    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int main()
    {
    	int p[8]={2,2,3,3,4,4,5,5};
    	int a[4];//a[0]~a[3]分别存储2,3,4,5在p数组中第一次出现的下标 
    	int i;
    	do
    	{
    		memset(a,-1,sizeof(a));
    		for(i=0;i<8;i++)
    		{
    			int k=p[i]-2;//2,3,4,5变成0,1,2,3 
    			if(a[k]==-1)//第一次出现 
    				a[k]=i;
    			else//第二次出现 
    			{
    				if(p[i]==5)
    				{
    					if(i-a[k]!=2) break;
    				} 
    				else 
    				{
    					if(i-a[k]!=p[i]+1) break;
    				}
    			}
    		}
    		if(i==8)
    		{
    			for(i=0;i<8;i++)
    				if(p[i]==5) cout<<'A';
    				else cout<<p[i];
    			break;
    		}	
    	}
    	while(next_permutation(p,p+8));
    	return 0;
    }
    
    • 1

    信息

    ID
    814
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者