2018 刑侦科推理试题

思路;

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;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

答案如下

猜你喜欢

转载自blog.csdn.net/zzzanj/article/details/81674138