SDNU 1528

题目链接 :Reasoning test


思路 :

我们看题意,发现 语句 6 中有三个是相同的,因此我们从语句 6 开始假设!

先规定 num : X  表示 第 num 个数答案是 X

num1 :X -> num2 : X 表示从num1 可以推断 num2 的答案

————————————————————手动分界——————————————

6 :A

    2 , 4 , 8 相同故  3 :B , 2 : B , 4 : B(因为2,4相同,必定不能排除2,4其中的一个 ,如果 3 :A 时与 6 :A 矛盾)

    2 :B -> 5 : D ->  7 : D  ;

    4 : B -> 7 : B (与上式矛盾)

6 : B

    因为 6 :B 所以 1 :B ,8 : B;    ( 8 : B + 1 : B )-> 5 : D -> 2 : B ( 因为 2 和 6 相同,所以当 3 :D 时,出现矛盾;所以     3 :A)

 3 : A -> 4 : B -> 7 : D ( 与 2 :B 矛盾)

6 : C    

    

( 字迹潦草,还望不要介意。。。)

6 :D

    因为 5 9 8 答案相同,由语句 9 得出 5 :D  9 :D  8 : D 

    5 : D  -> 7 : D ( 因为此时就已经有了 5 个 D 所以 D 肯定不是最少的,与语句 7  矛盾)

综上所述 我们得到了一个合法的答案

 1  2  3  4  5  6  7  8  9  10
 B  C  A  C  A  C  D  A  B  A 

比赛时后没有做出来,主要是将第 9  句中的 两个条件只能成立一个误认为两个都要成立!!! ( 难受!!!)

   分析到这里,代码就很简单了 T_T!

#include<iostream>
using namespace std;
int main()
{
	cout<<"BCACACDABA"<<endl;
	return 0;
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值