题目描述:

请回答下面的 10 个问题,你的回答应保证每题惟有你的选择是正确的。

⑴ 第一个答案是b 的问题是哪一个?
(a )2 ( b ) 3 ( c ) 4 ( d ) 5 ( e ) 6
⑵ 恰好有两个连续问题的答案是一样的,它们是:
( a ) 2 , 3 ( b ) 3, 4 ( c ) 4 ,5 ( d ) 5 ,6 ( e ) 6 ,7 
⑶ 本问题答案和哪一个问题的答案相同?
( a ) 1 ( b ) 2 ( c ) 4 ( d ) 7 ( e ) 6
⑷ 答案是a 的问题的个数是:
( a ) 0 ( b ) 1 ( c ) 2 ( d ) 3 ( e ) 4
⑸ 本问题答案和哪一个问题的答案相同?
( a ) 10 ( b ) 9 ( c ) 8 ( d ) 7 ( e ) 6
⑹ 答案是a 的问题的个数和答案是什么的问题的个数相同?
( a ) b ( b ) c ( c ) d ( d ) e ( e ) 以上都不是
⑺ 按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
( a ) 4 ( b ) 3 ( c ) 2 ( d ) 1 ( e ) 0(注: a和b相差一个字母)
⑻ 答案是元音字母的问题的个数是:
( a ) 2 ( b ) 3 ( c ) 4 ( d ) 5 ( e )6(注:A和E 是元音字母)
⑼ 答案是辅音字母的问题的个数是:
( a )一个质数 ( b )一个阶乘数 ( c )一个平方数 ( d )一个立方数 ( e )5的倍数
⑽ 本问题的答案是:
( a ) a ( b ) b ( c ) c ( d ) d ( e ) e

实际答案:C D E B E E D C B A

求解代码:

#include <bits/stdc++.h>

#define REP(i,n) for(int i=0;i<n;i++)
#define REPAB(i,a,b) for(int i=a;i<=b;i++)
#define REPN(i,a,n) for(int i=a;i<a+n;i++)

#define MAXN 15

int ans[MAXN];
//problem.no from 1 to 10
//ans.no from 1 to 5
int a3[]={0,1,2,4,7,6};
int a5[]={0,10,9,8,7,6};
int a91[]={0,3,6,4,8,0};
int a92[]={0,7,0,9,0,0};
bool okay(){
int k=0;
//p1
if(ans[ans[1]+1]!=2)return 0;
REPN(i,1,6){
if(ans[i]==2){
if(i!=ans[1]+1)return 0;
break;
}
if(i==6&&ans[i]!=2)return 0;
}
//p2
if(ans[ans[2]+1]!=ans[ans[2]+2])return 0;
REPN(i,1,5){
if(i!=ans[2]){
if(ans[i+1]==ans[i+2])return 0;
}
}
//p3
if(ans[a3[ans[3]]]!=ans[3])return 0;
REPN(i,1,5){
if(i!=ans[3])
if(ans[3]==ans[a3[ans[3]]]);//return 0;
}
//p4
REPAB(i,1,10){
if(ans[i]==1)k++;
}
if(ans[4]-1!=k)return 0;
k=0;
//p5
if(ans[a5[ans[5]]]!=ans[5])return 0;
REPN(i,1,5){
if(i!=ans[5])
if(ans[5]==ans[a5[ans[5]]]);//return 0;
}
//p6
k=0;
REPN(i,1,10)if(ans[i]==1)k++;
int kk=0;
REPN(i,1,10){
if(ans[i]==ans[6]+1)kk++;
}
if(ans[6]==5||kk==k);
else return 0;
REPN(i,1,5){
kk=0;
if(i==ans[6]||i==5)continue;
REPN(j,1,10){
if(ans[j]==i+1)kk++;
}
if(kk==k)return 0;
}
//p7
if(5-ans[7]==ans[8]-ans[7]||5-ans[7]==ans[7]-ans[8]);
else return 0;
//p8
k=0;
REPN(i,1,10){
if(ans[i]==1||ans[i]==5)k++;
}
if(ans[8]+1!=k)return 0;
k=10-k;
//p9
if(k==a91[ans[9]]||k==a92[ans[9]]);
else return 0;
return 1;
}
void dfs(int n){
if(n==11){
if(okay()){
REPN(i,1,10){
printf("%d ",ans[i]);
}
printf("\n");
}
return;
}
REPN(i,1,5){
ans[n]=i;
dfs(n+1);
}
return;
}
#define LOCAL
int main(){
#ifdef LOCAL
freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
#endif // LOCAL
dfs(1);
return 0;
}

【枚举】【lrj黑书】奇怪的问题(古老的智力题)的更多相关文章

  1. POI2001 Gold mine(二叉排序树 黑书经典)

    采矿(KOP) 金矿的老师傅年底要退休了.经理为了奖赏他的尽职尽责的工作,决定送他一块长方形地.长度为S,宽度为W.老师傅可以自己选择这块地.显然其中包含的采金点越多越好.你的任务就是计算最多能得到多 ...

  2. 刘汝佳黑书 pku等oj题目

    原文地址:刘汝佳黑书 pku等oj题目[转]作者:小博博Mr 一.动态规划参考资料:刘汝佳<算法艺术与信息学竞赛><算法导论> 推荐题目:http://acm.pku.edu. ...

  3. POJ 1042 Gone Fishing (贪心)(刘汝佳黑书)

    Gone Fishing Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 30281   Accepted: 9124 Des ...

  4. 倒水问题(Fill,UVA 10603) lrj白书 p202

    看着lrj的代码自己敲了一遍,还没调试成功.... 有时间再进行完善 /* 状态start到各个状态u1,u2,u3..... 的倒水量分别为u1.dist,u2.dist,u3.dist.... * ...

  5. Uva 548 二叉树的递归遍历lrj 白书p155

    直接上代码... (另外也可以在递归的时候统计最优解,不过程序稍微复杂一点) #include <iostream> #include <string> #include &l ...

  6. Uva 122 树的层次遍历 Trees on the level lrj白书 p149

    是否可以把树上结点的编号,然后把二叉树存储在数组中呢?很遗憾如果结点在一条链上,那将是2^256个结点 所以需要采用动态结构 首先要读取结点,建立二叉树addnode()+read_input()承担 ...

  7. PAT1135(红黑书的判定)

    There is a kind of balanced binary search tree named red-black tree in the data structure. It has th ...

  8. 矩阵连乘 LRJ白书 p141 栈 解析表达式

    #include<iostream> #include<cstdio> #include<cstring> #include<sstream> #inc ...

  9. bzoj2539 丘比特的烦恼、黑书P333 (最优二分图匹配)

      丘比特的烦恼 题目描述 Description 随着社会的不断发展,人与人之间的感情越来越功利化.最近,爱神丘比特发现,爱情也已不再是完全纯洁的了.这使得丘比特很是苦恼,他越来越难找到合适的男女, ...

随机推荐

  1. 【Leetcode_easy】606. Construct String from Binary Tree

    problem 606. Construct String from Binary Tree 参考 1. Leetcode_easy_606. Construct String from Binary ...

  2. Python3安装后无法使用退格键

    解决办法 # 安装readline模块 yum -y install readline-devel # 进入Python安装目录 cd /usr/python/Python-3.7.2 # 重新安装 ...

  3. 深入理解隐马尔可夫(HMM)模型

    1.安装依赖包hmmlearn 直接pip install hmmlearn可能会报错(安装这个模块需要使用C环境编译) 可以尝试用 conda install -c omnia hmmlearn安装 ...

  4. Vue-cli中的安装方法

    vue-cli脚手架模板是基于node下的npm来完成安装的所以首先需要安装node 1.安装node,vue运行需要基于npm一定的版本,所以首先升级npm到最新的版本,而在安装的过程中个人比较喜欢 ...

  5. 经典PID控制及应用体会总结

    经典PID控制及应用体会总结 PID控制原理 PID是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制方案: 重点关注相关算法是如何对偏差进行处理的: PID控制器各校正环节 ...

  6. CNN-3: VGGNet 卷积神经网络模型

    1.VGGNet 模型简介 VGG Net由牛津大学的视觉几何组(Visual Geometry Group)和 Google DeepMind公司的研究员一起研发的的深度卷积神经网络,在 ILSVR ...

  7. CentOS7.0 yum安装 docker

    一.安装docker 1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . root 用户登录操作! 通过  ...

  8. JWT 身份认证优缺点分析以及常见问题解决方案

    本文转载自:JWT 身份认证优缺点分析以及常见问题解决方案 Token 认证的优势 相比于 Session 认证的方式来说,使用 token 进行身份认证主要有下面三个优势: 1.无状态 token ...

  9. 1264: 祈雨(Java)

    WUSTOJ 1264: 祈雨 Description 在持续了X天的干旱之后,ACM俱乐部决定由LCM去请求雨大师XH祈雨,CMS则准备工具收集雨水,由于ACM俱乐部中有一个逆天的存在,BobLee ...

  10. EXIT(外部中断)控制实验

    实验目的 设计使用外接的按键来作为触发源,使得控制器产生中断,并在中断服务函数中实现控制小灯的亮灭. 按键硬件点路 编程要点 初始化用来产生中断的 GPIO: 初始化 EXTI: 配置 NVIC: 编 ...