洛谷CF784E Twisted Circuit

(本题本来可能也就普及难度但是硬生生给评成了一道NOI难度的紫题,有点无语。。。)
这道题目是一道愚人节题目,本来只有下面的电路图,结果翻译完之后难度就直接没了。

------------
言归正传, 说说这个题目吧。
####
抛开题目不谈,我们来复习下这个题目的原理。(与,或, 异或的概念)

或:

 

或(|):若二者均为0则返回0,否则返回1。

 


与(&):若二者均为1则返回1,否则返回0。

 

异或(^):若二者相等则返回0,不等则返回1。

 

------------

(~~其实可以直接复制解说的那段公式~~)

Code

#include
#include
using namespace std;
int main() {
    int a, b, c, d;
    scanf("%d%d%d%d", &a, &b, &c, &d);
    int s1, s2, s3, s4, s5, s6, s7;// s1, s2, s3, s4, s5, s6, s7分别为每一步的结果。 
    if(a == b)
        s1 = 0;
    else
        s1 = 1;
    if(c == 0 && d == 0)
        s2 = 0;
    else 
        s2 = 1;
    if(s1 == 1 && s2 == 1)
        s3 = 1;
    else
        s3 = 0;
        
    if(b == 1 && c == 1)
        s4 = 1;
    else
        s4 = 0;
    if(a == d)
        s5 = 0;
    else
        s5 = 1;
    if(s4 == 0 && s5 == 0)
        s6 = 0;
    else
        s6 = 1;
        
    if(s3 == s6)
        s7 = 0;
    else
        s7 = 1;
    /*直接s7 = ((a ^ b) & (c | d) ) ^ ((b & c)| (a ^ d))应该也行吧*/  
    printf("%d\n", s7);//输出最后的结果

    return 0;
}

最后,没有markdown真不习惯

 

转载于:https://www.cnblogs.com/Benjamin-cpp/p/10371733.html

你可能感兴趣的:(洛谷CF784E Twisted Circuit)