思路;
10重for循环暴力枚举答案;
哈哈;
代码如下
#include <bits/stdc++.h>
#define maxn 500005
typedef long long ll;
using namespace std;
ll a[maxn],b[maxn];
int title2()//第二题
{
if(abs(a[5] - a[2]) == 2)return 1;
else return 0;
}
int title3()//第三题
{
ll k = 0;
if(a[3] == 1 && a[2] != a[3] && a[4] != a[3] && a[6] != a[3])k++;
if(a[3] == 2 && a[2] != a[6] && a[3] != a[6] && a[4] != a[6])k++;
if(a[3] == 3 && a[3] != a[2] && a[4] != a[2] && a[6] != a[2])k++;
if(a[3] == 4 && a[2] != a[4] && a[3] != a[4] && a[6] != a[4])k++;
if(k == 1)return 1;
else return 0;
}
int title4()//第四题
{
ll k = 0;
if(a[4] == 1 && a[1] == a[5] && a[2] != a[7] && a[1] != a[9] && a[6] != a[10])k++;
if(a[4] == 2 && a[1] != a[5] && a[2] == a[7] && a[1] != a[9] && a[6] != a[10])k++;
if(a[4] == 3 && a[1] != a[5] && a[2] != a[7] && a[1] == a[9] && a[6] != a[10])k++;
if(a[4] == 4 && a[1] != a[5] && a[2] != a[7] && a[1] != a[9] && a[6] == a[10])k++;
if(k == 1)return 1;
else return 0;
}
int title5()//第五题
{
ll k = 0;
if(a[5] == 1 && a[8] == 1)k = 1;
if(a[5] == 2 && a[4] == 2)k = 1;
if(a[5] == 3 && a[9] == 3)k = 1;
if(a[5] == 4 && a[7] == 4)k = 1;
if(k == 1)return 1;
else return 0;
}
int title6()//第六题
{
ll k = 0;
if(a[6] == 1 && a[2] == a[8] && a[4] == a[8] && (a[1] != a[8] || a[6] != a[8]) && (a[3] != a[8] || a[10] != a[8]) && (a[5] != a[8] || a[9] != a[8]))k++;
if(a[6] == 2 && a[1] == a[8] && a[6] == a[8] && (a[2] != a[8] || a[4] != a[8]) && (a[3] != a[8] || a[10] != a[8]) && (a[5] != a[8] || a[9] != a[8]))k++;
if(a[6] == 3 && a[3] == a[8] && a[10] == a[8] && (a[1] != a[8] || a[6] != a[8]) && (a[2] != a[8] || a[4] != a[8]) && (a[5] != a[8] || a[9] != a[8]))k++;
if(a[6] == 4 && a[5] == a[8] && a[9] == a[8] && (a[1] != a[8] || a[6] != a[8]) && (a[3] != a[8] || a[10] != a[8]) && (a[2] != a[8] || a[4] != a[8]))k++;
if(k == 1)return 1;
else return 0;
}
int title7()//第七题
{
ll is1 = 0,is2 = 0,is3 = 0,is4 = 0,k = 0;
for(int i = 1; i <= 10; i ++)
{
if(a[i] == 1) is1++;
if(a[i] == 2) is2++;
if(a[i] == 3) is3++;
if(a[i] == 4) is4++;
}
if(a[7] == 1 && is3 < is1 && is3 < is2 && is3 < is4)k++;
if(a[7] == 2 && is2 < is1 && is2 < is3 && is2 < is4)k++;
if(a[7] == 3 && is1 < is2 && is1 < is3 && is1 < is4)k++;
if(a[7] == 4 && is4 < is1 && is4 < is2 && is4 < is3)k++;
if(k == 1)return 1;
else return 0;
}
int title8()//第八题
{
ll k = 0;
if(a[8] == 1 && abs(a[7] - a[1]) != 1 && abs(a[5] - a[1]) == 1 && abs(a[2] - a[1]) == 1 && abs(a[10] - a[1]) == 1)k++;
if(a[8] == 2 && abs(a[5] - a[1]) != 1 && abs(a[7] - a[1]) == 1 && abs(a[2] - a[1]) == 1 && abs(a[10] - a[1]) == 1)k++;
if(a[8] == 3 && abs(a[2] - a[1]) != 1 && abs(a[5] - a[1]) == 1 && abs(a[7] - a[1]) == 1 && abs(a[10] - a[1]) == 1)k++;
if(a[8] == 4 && abs(a[10] - a[1]) != 1 && abs(a[5] - a[1]) == 1 && abs(a[2] - a[1]) == 1 && abs(a[7] - a[1]) == 1)k++;
if(k == 1)return 1;
else return 0;
}
int title9()//第九题
{
ll k = 0;
if(a[9] == 1 && ((a[1] == a[6] && a[6] != a[5]) || (a[1] != a[6] && a[6] == a[5]))) k++;
if(a[9] == 2 && ((a[1] == a[6] && a[10] != a[5]) ||(a[1] != a[6] && a[10] == a[5]))) k++;
if(a[9] == 3 && ((a[1] == a[6] && a[2] != a[5]) || (a[1] != a[6] && a[2] == a[5]))) k++;
if(a[9] == 4 && ((a[1] == a[6] && a[9] != a[5]) || (a[1] != a[6] && a[9] == a[5]))) k++;
if(k == 1)return 1;
else return 0;
}
int title10()//第十题
{
ll is1 = 0,is2 = 0,is3 = 0,is4 = 0,k = 0;
for(int i = 1; i <= 10; i ++)
{
if(a[i] == 1) is1++;
if(a[i] == 2) is2++;
if(a[i] == 3) is3++;
if(a[i] == 4) is4++;
}
memset(b,0,sizeof(b));
b[1] = is1;
b[2] = is2;
b[3] = is3;
b[4] = is4;
sort(b+1,b+5);
if(a[10] == 1 && b[4] - b[1] == 3)k = 1;
if(a[10] == 2 && b[4] - b[1] == 2)k = 1;
if(a[10] == 3 && b[4] - b[1] == 4)k = 1;
if(a[10] == 4 && b[4] - b[1] == 1)k = 1;
if(k == 1)return 1;
else return 0;
}
int main()
{
for(int q = 1; q <= 4; q ++)
{
for(int w =1; w <= 4; w ++)
{
for(int e = 1; e <= 4; e ++)
{
for(int r = 1; r <= 4; r ++)
{
for(int t = 1; t <= 4; t ++)
{
for(int y = 1; y <= 4; y ++)
{
for(int u = 1; u <= 4; u ++)
{
for(int i = 1; i <= 4; i ++)
{
for(int o = 1; o <= 4; o ++)
{
for(int p = 1; p <= 4; p ++)
{
a[1] = q;
a[2] = w;
a[3] = e;
a[4] = r;
a[5] = t;
a[6] = y;
a[7] = u;
a[8] = i;
a[9] = o;
a[10] = p;
if(title2() && title3() && title4() && title5() && title6() &&title7() && title8() && title9() && title10())
{
cout << "Orz答案" << endl;
char c;
for(int i = 1; i <= 10; i ++)
{
c = a[i] - 1 + 'A';
cout << c << ' ';
}
cout << endl;
}
}
}
}
}
}
}
}
}
}
}
}
答案如下