[CSP-J2020] 表达式

本文介绍了CSP-J2020中关于表达式的问题,重点讨论了如何使用后缀表达式和栈来模拟运算。通过分析&、|和!的运算特性,提出了优化方案,包括利用树形结构或后缀表达式的性质来减少无效运算。文中还提到,可以标记某些数值为“废物”,在运算过程中快速判断是否产生影响,从而提高效率。虽然不建树会导致复杂度增加,但提供了不建树的解决方案。
摘要由CSDN通过智能技术生成

 [CSP-J2020] 表达式 - 洛谷

思路:后缀表达式用栈模拟运算

不做任何处理,暴力可以得30分

有两种优化方案:

(1)树;

(2)利用后缀表达式的树形结构;

但是,两种方案的思路相同,以下具体介绍思路:

介绍一下& | !

& :1&1为1,其余为0

1 & 1 = 1

1 & 0 = 0

0 & 0 = 0

| ::0|0为0,其余为1

1 | 1 = 1

1 | 0 = 1

0 | 0 = 0

!:

! 0 = 1

! 1 = 0

发现了吗?对于&和|都有一些运算数无论怎样改变,只要另一个运算数不变,它们运算的值也不变。

有以下结论:

当x&y时:

x为0时,y无法造成任何影响; 

y为0时,x无法造成任何影响。

当x|y时:

x为1时,y无法造成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值