zoukankan      html  css  js  c++  java
  • Day1-A-POJ-3295

    由题意知,有5种操作,5个未知数,可0可1,一串操作问是否恒为1,最多100个字符,直接栈模拟所有情况即可

    代码如下:

    int p, q, r, s, t;
    
    bool calculate(string ind) {
        int length = ind.size();
        stack<int> buf;
        for (int i = length - 1; i >= 0;--i) {
            char tmp = ind[i];
            if(tmp == 'p')
                buf.push(p);
            else if(tmp == 'q')
                buf.push(q);
            else if(tmp == 'r')
                buf.push(r);
            else if(tmp == 's')
                buf.push(s);
            else if(tmp == 't')
                buf.push(t);
            else if(tmp == 'K') {
                int val1, val2;
                val1 = buf.top(), buf.pop();
                val2 = buf.top(), buf.pop();
                buf.push(val1 & val2);
            }
            else if(tmp == 'A') {
                int val1, val2;
                val1 = buf.top(), buf.pop();
                val2 = buf.top(), buf.pop();
                buf.push(val1 || val2);
            }
            else if(tmp == 'N') {
                int val = buf.top();
                buf.pop();
                buf.push(!val);
            }
            else if(tmp == 'C') {
                int val1, val2;
                val1 = buf.top(), buf.pop();
                val2 = buf.top(), buf.pop();
                buf.push(!val1 || val2);
            }
            else if(tmp == 'E') {
                int val1, val2;
                val1 = buf.top(), buf.pop();
                val2 = buf.top(), buf.pop();
                buf.push(val1 == val2);
            }
        }
    
        return buf.top();
    }
    
    int main() {
        string str;
        while(cin >> str && str != "0") {
            bool flag = true;
            for (p = 0; p < 2;++p)
            {
                for (q = 0; q < 2;++q) {
                    for (r = 0; r < 2;++r) {
                        for (s = 0; s < 2;++s) {
                            for (t = 0; t < 2;++t) {
                                if(!calculate(str)) {
                                    flag = false;
                                    break;
                                }
                            }
                            if(!flag)break;
                        }
                        if(!flag)break;
                    }
                    if(!flag)break;
                }
                if(!flag)break;
            }
            if(flag)
                printf("tautology
    ");
            else
                printf("not
    ");
            }
        return 0;
    }
     
  • 相关阅读:
    numpy计算路线距离
    WebApi安全性 使用TOKEN+签名验证
    从SQL查询分析器中读取EXCEL中的内容
    Autofac应用总结
    Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
    架构 : 三层架构、MVC、MVP、MVVM
    Asp.Net MVC :路由器
    myeclipse10安装egit和使用
    myeclipse10.7安装git插件
    SQLite之C#连接SQLite
  • 原文地址:https://www.cnblogs.com/GRedComeT/p/11212229.html
Copyright © 2011-2022 走看看