当前位置:网站首页>学军中学推理社2017届招新试题
学军中学推理社2017届招新试题
2022-08-11 01:58:00 【51CTO】
迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int ab[ 12] = { 0};
int tw()
{
switch( ab[ 2])
{
case 1:
if( ab[ 5] == 3) return 0;
break;
case 2:
if( ab[ 5] == 4) return 0;
break;
case 3:
if( ab[ 5] == 1) return 0;
break;
case 4:
if( ab[ 5] == 2) return 0;
break;
}
return 1;
}
int tr()
{
switch( ab[ 3])
{
case 1:
if( ab[ 6] != 1 && ab[ 2] != 1 && ab[ 4] != 1) return 0;
break;
case 2:
if( ab[ 6] != 2 && ab[ 6] != ab[ 2] && ab[ 6] != ab[ 4]) return 0;
break;
case 3:
if( ab[ 2] != 3 && ab[ 2] != ab[ 6] && ab[ 2] != ab[ 4]) return 0;
break;
case 4:
if( ab[ 4] != 4 && ab[ 4] != ab[ 2] && ab[ 4] != ab[ 6]) return 0;
break;
}
return 1;
}
int fo()
{
switch( ab[ 4])
{
case 1:
if( ab[ 1] == ab[ 5]) return 0;
break;
case 2:
if( ab[ 2] == ab[ 7]) return 0;
break;
case 3:
if( ab[ 1] == ab[ 9]) return 0;
break;
case 4:
if( ab[ 6] == ab[ 10]) return 0;
break;
}
return 1;
}
int fi()
{
switch( ab[ 5])
{
case 1:
if( ab[ 8] == 1) return 0;
break;
case 2:
if( ab[ 4] == 2) return 0;
break;
case 3:
if( ab[ 9] == 3) return 0;
break;
case 4:
if( ab[ 7] == 4) return 0;
break;
}
return 1;
}
int si()
{
switch( ab[ 6])
{
case 1:
if( ab[ 2] == ab[ 4] && ab[ 8] == ab[ 2]) return 0;
break;
case 2:
if( ab[ 1] == ab[ 6] && ab[ 1] == ab[ 8]) return 0;
break;
case 3:
if( ab[ 3] == ab[ 10] && ab[ 3] == ab[ 8]) return 0;
break;
case 4:
if( ab[ 5] == ab[ 9] && ab[ 8] == ab[ 5]) return 0;
break;
}
return 1;
}
int k[ 5];
int big( int n)
{
for( int i = 1; i <= 4; i ++)
if( k[ n] > k[ i]) return 0;
return 1;
}
int se()
{
switch( ab[ 7])
{
case 1:
if( big( 3)) return 0;
break;
case 2:
if( big( 2)) return 0;
break;
case 3:
if( big( 1)) return 0;
break;
case 4:
if( big( 4)) return 0;
break;
}
return 1;
}
int te()
{
int t = abs( k[ 4] - k[ 1]);
switch( ab[ 10])
{
case 1:
if( t == 3) return 0;
break;
case 2:
if( t == 2) return 0;
break;
case 3:
if( t == 4) return 0;
break;
case 4:
if( t == 1) return 0;
break;
}
return 1;
}
int ei()
{
switch( ab[ 8])
{
case 1:
if( abs( ab[ 7] - ab[ 1]) != 1) return 0;
break;
case 2:
if( abs( ab[ 5] - ab[ 1]) != 1) return 0;
break;
case 3:
if( abs( ab[ 2] - ab[ 1]) != 1) return 0;
break;
case 4:
if( abs( ab[ 10] - ab[ 1]) != 1) return 0;
break;
}
return 1;
}
int ni()
{
int a =( ab[ 1] == ab[ 6]);
switch( ab[ 9])
{
case 1:
if(( ab[ 6] == ab[ 5]) != a) return 0;
break;
case 2:
if(( ab[ 10] == ab[ 5]) != a) return 0;
break;
case 3:
if(( ab[ 2] == ab[ 5]) != a) return 0;
break;
case 4:
if(( ab[ 9] == ab[ 5]) != a) return 0;
break;
}
return 1;
}
int panduan()
{
memset( k, 0, sizeof( k));
if( tw()) return 0;
if( tr()) return 0;
if( fo()) return 0;
if( fi()) return 0;
if( si()) return 0;
if( ei()) return 0;
if( ni()) return 0;
for( int i = 1; i <= 10; i ++)
k[ ab[ i]] ++;
if( se()) return 0;
sort( k, k + 5);
if( te()) return 0;
return 1;
}
int digui( int i)
{
if( i == 11 && panduan())
for( int a = 1; a <= 10; a ++)
printf( "%d\t%c\n", a, 64 + ab[ a]);
else if( i < 11)
for( ab[ i] = 1; ab[ i] <= 4; ab[ i] ++)
digui( i + 1);
return 0;
}
int main()
{
printf( "answer:\n");
digui( 1);
return 0;
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
- 101.
- 102.
- 103.
- 104.
- 105.
- 106.
- 107.
- 108.
- 109.
- 110.
- 111.
- 112.
- 113.
- 114.
- 115.
- 116.
- 117.
- 118.
- 119.
- 120.
- 121.
- 122.
- 123.
- 124.
- 125.
- 126.
- 127.
- 128.
- 129.
- 130.
- 131.
- 132.
- 133.
- 134.
- 135.
- 136.
- 137.
- 138.
- 139.
- 140.
- 141.
- 142.
- 143.
- 144.
- 145.
- 146.
- 147.
- 148.
- 149.
- 150.
- 151.
- 152.
- 153.
- 154.
- 155.
- 156.
- 157.
- 158.
- 159.
- 160.
- 161.
- 162.
- 163.
- 164.
- 165.
- 166.
- 167.
- 168.
- 169.
- 170.
- 171.
- 172.
- 173.
- 174.
- 175.
- 176.
- 177.
- 178.
- 179.
- 180.
- 181.
- 182.
- 183.
- 184.
- 185.
- 186.
- 187.
- 188.
- 189.
- 190.
- 191.
- 192.
- 193.
- 194.
- 195.
- 196.
- 197.
- 198.
- 199.
- 200.
- 201.
- 202.
- 203.
- 204.
- 205.
- 206.
- 207.
- 208.
- 209.
- 210.
- 211.
- 212.
- 213.
- 214.
- 215.
- 216.
- 217.
- 218.
- 219.
- 220.
暴力枚举,简简单单
边栏推荐
- TRCX:掺杂过程分析
- 软件测试面试题:单元测试的策略有哪些?
- Data Analysis Interview Manual "SQL"
- Fatal error in launcher: Unable to create process using xxx --logdir logs(tensorboard使用)
- 软件测试面试题:软件测试的过程的V模型,说出它的缺点?
- The latest domestic power supply manufacturers and pin-to-pin replacement manuals for specific models are released
- 深度解析:什么是太爱速M抢单模式?
- Oops novice template Framework project guide
- ARM开发(四)新手小白如何阅读芯片手册,裸机驱动开发步骤以及纯汇编实现点灯,汇编结合c点灯,c实现点灯
- C# string与stream的相互转换
猜你喜欢
经典面试题 之 GC垃圾收集器
22、库存服务
nvidia-smi详解
Detailed explanation of common methods of filtering matrix (array) elements in Matlab
漏洞管理计划的未来趋势
Update chromedriver driver programming skills │ selenium
22. Inventory service
wincc如何实现远程监控1200PLC
ARM development (4) How to read the chip manual for novice Xiaobai, bare metal driver development steps and pure assembly to achieve lighting, assembly combined with c lighting, c to achieve lighting
惨遭面试官吊打高并发系统设计,回来学习 2400 小时后成功复仇
随机推荐
软件测试面试题:在频繁的版本发布中,如何回归测试?
22. Inventory service
14.cuBLAS开发指南中文版--cuBLAS中的Level-1函数nrm2()和rot()
Matlab矩阵(数组)元素过滤常见方法详解
络达开发---自定义Timer的实现
两日总结十一
88Q2110 通过C22方式访问C45 phy地址
联盛德W801系列6-从微信小程序的角度来分析W801的蓝牙通信源码(indicate方式)
漏洞管理计划的未来趋势
软件测试面试题:验收测试包括哪三种类型?
21. Aliyun oss
【C 数据存储详解】(1)——深度剖析整形数据在内存中的存储
深度解析:什么是太爱速M抢单模式?
HCIP-R&S By Wakin自用笔记(3)OSPF之引入外部路由、Forwarding-Address、汇总、特殊区域
Deep Learning【第二章】
如何实现FPGA的可重复性设计
uni-app实现app和H5调用手机拨号功能
备战“金九银十”,软件测试功能 / 数据库 /linux/ 接口 / 自动化 / 测试开发面试真题解析
TRCX: doping process analysis
nvidia-smi:控制你的 GPU