【枚举】【lrj黑书】奇怪的问题(古老的智力题)
题目描述:
请回答下面的 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黑书】奇怪的问题(古老的智力题)的更多相关文章
- POI2001 Gold mine(二叉排序树 黑书经典)
采矿(KOP) 金矿的老师傅年底要退休了.经理为了奖赏他的尽职尽责的工作,决定送他一块长方形地.长度为S,宽度为W.老师傅可以自己选择这块地.显然其中包含的采金点越多越好.你的任务就是计算最多能得到多 ...
- 刘汝佳黑书 pku等oj题目
原文地址:刘汝佳黑书 pku等oj题目[转]作者:小博博Mr 一.动态规划参考资料:刘汝佳<算法艺术与信息学竞赛><算法导论> 推荐题目:http://acm.pku.edu. ...
- POJ 1042 Gone Fishing (贪心)(刘汝佳黑书)
Gone Fishing Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 30281 Accepted: 9124 Des ...
- 倒水问题(Fill,UVA 10603) lrj白书 p202
看着lrj的代码自己敲了一遍,还没调试成功.... 有时间再进行完善 /* 状态start到各个状态u1,u2,u3..... 的倒水量分别为u1.dist,u2.dist,u3.dist.... * ...
- Uva 548 二叉树的递归遍历lrj 白书p155
直接上代码... (另外也可以在递归的时候统计最优解,不过程序稍微复杂一点) #include <iostream> #include <string> #include &l ...
- Uva 122 树的层次遍历 Trees on the level lrj白书 p149
是否可以把树上结点的编号,然后把二叉树存储在数组中呢?很遗憾如果结点在一条链上,那将是2^256个结点 所以需要采用动态结构 首先要读取结点,建立二叉树addnode()+read_input()承担 ...
- PAT1135(红黑书的判定)
There is a kind of balanced binary search tree named red-black tree in the data structure. It has th ...
- 矩阵连乘 LRJ白书 p141 栈 解析表达式
#include<iostream> #include<cstdio> #include<cstring> #include<sstream> #inc ...
- bzoj2539 丘比特的烦恼、黑书P333 (最优二分图匹配)
丘比特的烦恼 题目描述 Description 随着社会的不断发展,人与人之间的感情越来越功利化.最近,爱神丘比特发现,爱情也已不再是完全纯洁的了.这使得丘比特很是苦恼,他越来越难找到合适的男女, ...
随机推荐
- MOQ中CallBase的作用
当使用Moq来Mock一个具体的类,类里的方法为virtual时,Moq会将当前类,所有的virtual方法默认重写成空实现. 如果我们想要访问真实的代码,有两种方法 1.在创建Mock时,设置Cal ...
- MongoDB 谨防索引seek的效率问题(转)
目录 背景 初步分析 索引seeks的原因 优化思路 小结 声明:本文同步发表于 MongoDB 中文社区,传送门:http://www.mongoing.com/archives/27310 背景 ...
- 【C/C++开发】C++实现简单的线程池
C++实现简单的线程池 线程池编程简介: 在我们的服务端的程序中运用了大量关于池的概念,线程池.连接池.内存池.对象池等等.使用池的概念后可以高效利用服务器端的资源,比如没有大量的线程在系统中进行上下 ...
- table列表全选
<table><tr><td><input type="checkbox" /></td><td></ ...
- CenOS 7 安装JDK
1.输入安装命令 yum install java-1.8.0-openjdk-devel.x86_64
- Memcached集群实现及原理介绍
一.Memcached集群介绍 1.自身通过算法保证数据唯一性2.集群形式对用户和Memcached都是透明的3.Memcached的集群是通过客户端实现的4.Memcached服务端相互不认识 二. ...
- alertmanager的web页面显示UTC时间的问题
1.http://192.168.1.144:9093/#/alerts 显示的告警时间是UTC时间 2.脚本的变量 {"status":"success"}[ ...
- 读取json数据封装
前言:做自动化常用公共方法 import json class ReadJson(): def __init__(self): self.data = self.read_data() #读取JSON ...
- 49.Django起步学习
django起步 django安装 pip install django==2.0.4(版本号) pip install django 默认安装最新版本 创建项目 django-admin start ...
- [转帖]拿小本本记下的Linux Shell常用技巧(一)
拿小本本记下的Linux Shell常用技巧(一) https://zhuanlan.zhihu.com/p/73361101 一. 特殊文件: /dev/null和/dev/tty Linux系统提 ...