传送门

题目大意:

输入给出一串位运算,输出一个步数小于等于5的方案,正确即可,不唯一。

题目分析:

英文题的理解真的是各种误差,从头到尾都以为解是唯一的。

根据位运算的性质可以知道:

一连串的位运算最终都可以用三个位运算代替(&|^)。

那么仅需对每一位的情况进行讨论,某一位:

  • 必须变为1 (|1)
  • 必须变为0 (&0)
  • 必须01颠倒(^1)

    最后输出3种位运算即可(输出三种最稳妥)。

code

#include<bits/stdc++.h>
using namespace std;
int x, y, n; int main(){
//freopen("h.in", "r", stdin);
scanf("%d", &n);
x = 0, y = (1<<10)-1;
for(int i = 1; i <= n; i++){
char opt[5];
int v;
scanf("%s %d", opt + 1, &v);
if(opt[1] == '|'){
x |= v;
y |= v;
}
else if(opt[1] == '&'){
x &= v;
y &= v;
}
else if(opt[1] == '^'){
x ^= v;
y ^= v;
}
}
int orr, andd, xorr;
orr = andd = xorr = 0;
for(int i = 0; i < 10; i++){
int t = 1 << i;
if(x & t){
if(y & t) orr |= t;
else xorr |= t;
andd |= t;
}
else{
if(y & t)
andd |= t;
}
}
printf("3\n");
printf("& %d\n", andd);
printf("| %d\n", orr);
printf("^ %d\n", xorr);
return 0;
}

最新文章

  1. 三、jQuery--Ajax基础--Ajax全接触--JSON
  2. Yii源码阅读笔记(二十四)
  3. MEF简单示例
  4. tornado nginx supervisor
  5. Oracle Goldengate工作原理
  6. SAE 上传根目录不存在!请尝试手动创建:./Uploads/Picture/
  7. php开发通用采集程序
  8. php读取文件的各种方法
  9. 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载
  10. SQL SERVER运维日记--收缩数据库
  11. Web前端性能优化全攻略
  12. 【Django】Django与jinja的不同
  13. python_大学排名爬取
  14. C# Execl表格文件转xml文件
  15. Eclipse oxygen 版本汉化教程
  16. 权限控制和OAuth
  17. CSS圆角进化论
  18. python-中缀表达式转前缀表达式
  19. 用js实现九九乘法口诀两种方式
  20. 20155239吕宇轩 Exp1 PC平台逆向破解(5)M

热门文章

  1. Android: 分页浏览的利器 android View Pager
  2. 数值溢出(arithmetic overflow)问题与解决方案
  3. python基础--数值类型和序列类型
  4. 关于CSDN2013博客之星的一些看法
  5. 如何去掉bootstrap table中表格样式中横线竖线
  6. 洛谷——P1601 A+B Problem(高精)
  7. 洛谷 P1497 木牛流马
  8. js里的表格数组某个key去重
  9. [React Intl] Format Date and Time Using react-intl FormattedDate and FormattedTime
  10. Oracle分页查询的一个存储过程: