zoukankan      html  css  js  c++  java
  • 蓝桥杯 谁干的好事? 暴力

    问题描述
      ABCDE中num个人做了好事,truth个人说真话。
      A说:“我和X中有且只有一个做了好事”
      B说:“C和E中有人做了好事”
      C说:“我和D和A中有人做了好事”
      D说:“B和C都没有做好事”
      E说:“我没有做好事”
      请问有哪些人做了好事?
      多组方案请一行一个输出。
    输入格式
      仅一行,先是一个整数num,接着是一个A~E的字符X,最后是一个整数truth。意义见题面。
    输出格式
      每行输出一组方案,方案中按 字母序 输出做好事的人的代号(A~E),不要空格隔开。
      如果没有合法方案,输出一行一个0即可。
    样例输入
    1 E 2
    样例输出
    0
    样例输入
    2 E 2
    样例输出
    BD
    BE
    数据规模和约定
      规定,1 <= num <= 2。
    参考自https://blog.csdn.net/weixin_45276914/article/details/104772434,思路很清晰。
    就是假定num=1时,枚举说真话的是A或B或C或D或E,得出对应的truth等于多少。
    再假定num=2时,枚举说真话的是AB或AC或AD或AE或BC或BD或BE或CD或CE或DE时,得出对应的truth等于多少。
    最后得出一张表,根据表值写if判断,原贴疑似笔误将num=2,说真话的是AE时的情况写错了,当X为E时为3,否则应为4。
    本题不涉及算法知识,完全的手算所有情况,演草纸写三张,浪费时间,不过锻炼思维逻辑。
      1 #include <bits/stdc++.h>
      2 using namespace std; 
      3 int main() {
      4     int num, truth;
      5     string op;
      6     cin >> num >> op >> truth;
      7     vector<string> v;
      8     if (num == 1) {
      9         if (truth == 1) {
     10             if (op != "B") {
     11                 v.push_back("B");
     12             }
     13         }
     14         if (truth == 2) {
     15             if (op == "B") {
     16                 v.push_back("B");
     17             } 
     18             if (op != "E") {
     19                 v.push_back("E");
     20             }
     21         }
     22         if (truth == 3) {
     23             if (op != "C") {
     24                 v.push_back("C");
     25             } 
     26             if (op != "D") {
     27                 v.push_back("D");
     28             } 
     29             if (op == "E") {
     30                 v.push_back("E");
     31             }
     32         }
     33         if (truth == 4) {
     34             v.push_back("A");
     35             if (op == "C") {
     36                 v.push_back("C");
     37             } 
     38             if (op == "D") {
     39                 v.push_back("D");
     40             }
     41         }
     42     }
     43     if (num == 2) {
     44         if (truth == 1) {
     45             if (op != "B" && op != "E") {
     46                 v.push_back("BE");
     47             }
     48         }
     49         if (truth == 2) {
     50              if (op == "B") {
     51               v.push_back("AB");
     52              }  
     53              if (op != "B" && op != "D") {
     54                 v.push_back("BD");
     55              } 
     56              if (op == "B" ||op == "E") {
     57                 v.push_back("BE");
     58              } 
     59              if ((op != "E") && (op != "C")) {
     60                 v.push_back("CE");
     61              }
     62         }
     63         if (truth == 3) {
     64             if (op == "E") {
     65                 v.push_back("AE");
     66             } 
     67             if (op != "B") {
     68                 v.push_back("AB");
     69             } 
     70             if (op == "C") {
     71                 v.push_back("AC");
     72             }
     73             if (op == "D") {
     74                 v.push_back("AD");
     75             }
     76             if (op != "B" && op != "C") {
     77                 v.push_back("BC");
     78             } 
     79             if (op == "B" || op == "D") {
     80                 v.push_back("BD");
     81             } 
     82             if (op != "D" && op != "C") {
     83                 v.push_back("CD");
     84             } 
     85             if (op == "C" || op == "E") {
     86                 v.push_back("CE");
     87             } 
     88             if (op != "D" && op != "E") {
     89                 v.push_back("DE");
     90             }
     91         }
     92         if (truth == 4) {
     93             if (op != "C") {
     94                 v.push_back("AC");
     95             } 
     96             if (op != "D") {
     97                 v.push_back("AD");
     98             } 
     99             if (op != "E") {
    100                 v.push_back("AE");
    101             } 
    102             if (op == "B" || op == "C") {
    103                 v.push_back("BC");
    104             } 
    105             if (op == "C" || "D") {
    106                 v.push_back("CD");
    107             }
    108             if (op == "C" || op == "E") {
    109                 v.push_back("DE");
    110             }
    111         }
    112     }
    113     if (v.size() == 0) {
    114         cout << 0 << endl;
    115     }
    116     for (int i = 0; i < v.size(); i++) {
    117         cout << v[i] << endl;
    118     }
    119     return 0;
    120 }
  • 相关阅读:
    SQLite在iOS开发中的使用
    实现序列化和反序列化
    NSPredicate用于对集合类中的元素进行筛选
    通知中心NSNotification与委托的异同,需要注意的要点
    OC 重写description,isEqual方法
    iOs 单例模式的定义,实现、步骤
    Obejctiv-c 里面KVC 和 KVO的实现步骤,和有关方法
    关于NSTimer的几种构建方式
    NSTimer 实现到一个指定时间(年、月、日)的倒计时
    关于UILable、UIButton、UITextField简单运用
  • 原文地址:https://www.cnblogs.com/fx1998/p/12615786.html
Copyright © 2011-2022 走看看