zoukankan      html  css  js  c++  java
  • Follow My Logic 1048 PKU

    Follow My Logic

    http://acm.pku.edu.cn/JudgeOnline/problem?id=1048

    确定由一个或多个输入、0个或多个与或门组成的逻辑电路

    电路路径通过水平线(-45)、垂直线(|124)、联接点(+43)

    A--Z代表输入,?代表输出
    AND门表示:
    :\
    : )
    :/
    OR门表示:
    :\
    : >
    :/
    输入或输出带o表示反
    Solution:

    寻找?位置,然后递归地搜索答案,例如上图,
    栈S1保存为
    ? AND INVERT C INVERT OR A B

    ? AND INVERT OR A B INVERT C
    求ans利用到另外一个栈S2
        B,为输入In(S2,B)
        A,为输入In(S2,A)
        OR 二元操作 temp = Top(S2) OR Top(S2); In(S2,temp)
    INVERT, 一元操作 temp = INVERT(Top(S2))
    C,为输入In(S2,C)
    INVERT, 一元操作 temp = INVERT(Top(S2))
    AND二元操作 temp = Top(S2) AND Top(S2); In(S2,temp)
    ?print (Top(S2)
    Top(S)为读出栈顶S,更换栈顶
    尽管上面分析看似有理,但是忽略了很多情况,例如

    这体现出一个难点:方向的确定
    这个程序发现了个问题,C、GCC貌似不支持按引用传参数

  • 相关阅读:
    tomcat启动问题
    索引优化
    itext转PDF(二)
    itext转pdf(一)
    定时器quartz配置文件
    hibernate自动去别名问题
    win10安装mysql 8.0.19 (解压方式)
    把数据按列拆分为数据表
    程序记时
    find的应用
  • 原文地址:https://www.cnblogs.com/eavn/p/1754005.html
Copyright © 2011-2022 走看看