洛谷CF784E Twisted Circuit

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

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

或:

 

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

 


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

 

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

 

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

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

Code

#include<iostream>
#include<cstdio>
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值