给你一串$n$个按顺序的位运算操作(&,|,^),形如"opt x",要求用不超过5行的位运算,按顺序操作出来和那个结果是一样的。$(n<=5e5,0<=x<1024)$


会了之后很水。构造。。

首先确定每一位是原来是$1$会变成啥,是$0$会变成啥。

然后用位运算构造。我太菜md居然不会......

具体如下

假设最后要或$a$,与$b$,异或$c$。初值$a=0,b=1023,c=0$。如果啥也不改输入啥还是输出啥。

$0\rightarrow1,1\rightarrow0$  取反,这位要异或,$a$的这位赋为$1$。

$0\rightarrow0,1\rightarrow0$  清零,这位要与上$0$,$b$的这位赋为$0$。

$0\rightarrow1,1\rightarrow1$  需要填上$1$,这位要或,$c$的这位赋为$1$。


#include<bits/stdc++.h>
using namespace std;
int a,b,c,x,y;
int main(){
int n;cin>>n;x=b=;
for(int i=;i<=n;i++){
char ch[];scanf("%s",ch);
int t;cin>>t;
if(ch[]=='|')x|=t,y|=t;
if(ch[]=='&')x&=t,y&=t;
if(ch[]=='^')x^=t,y^=t;
}
for(int i=;i<;i++){
int f=<<i;
int p=x&f,q=y&f;
if(p&&q)a+=f;
if(!p&&!q)b-=f;
if((!p)&&q)c+=f;
}
cout<<"3\n";
cout<<"| "<<a<<endl;
cout<<"& "<<b<<endl;
cout<<"^ "<<c<<endl;
}

当时瓜田里没人想出来,,即使是看了yyc大佬的简要题解,,嗷嗷嗷还是太菜了。。

[Codeforces Round #443]Div2 C Short Program的更多相关文章

  1. Codeforces Round #443 (Div. 2) 【A、B、C、D】

    Codeforces Round #443 (Div. 2) codeforces 879 A. Borya's Diagnosis[水题] #include<cstdio> #inclu ...

  2. Codeforces Round #539 div2

    Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...

  3. 【前行】◇第3站◇ Codeforces Round #512 Div2

    [第3站]Codeforces Round #512 Div2 第三题莫名卡半天……一堆细节没处理,改一个发现还有一个……然后就炸了,罚了一啪啦时间 Rating又掉了……但是没什么,比上一次好多了: ...

  4. Codeforces Round#320 Div2 解题报告

    Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...

  5. Codeforces Round #564(div2)

    Codeforces Round #564(div2) 本来以为是送分场,结果成了送命场. 菜是原罪 A SB题,上来读不懂题就交WA了一发,代码就不粘了 B 简单构造 很明显,\(n*n\)的矩阵可 ...

  6. Codeforces Round #443 (Div. 1) A. Short Program

    A. Short Program link http://codeforces.com/contest/878/problem/A describe Petya learned a new progr ...

  7. Codeforces Round #443 (Div. 2) C. Short Program

    C. Short Program time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  8. Codeforces Round #361 div2

    ProblemA(Codeforces Round 689A): 题意: 给一个手势, 问这个手势是否是唯一. 思路: 暴力, 模拟将这个手势上下左右移动一次看是否还在键盘上即可. 代码: #incl ...

  9. Codeforces Round #443 (Div. 2)

    C. Short Program Petya learned a new programming language CALPAS. A program in this language always ...

随机推荐

  1. nginx-1.12.2编译安装指导

    nginx-1.12.2编译安装 下载源码包 安装 安装后配置 下载源码包 下载地址:http://nginx.org/en/download.html nginx-1.12.2:http://ngi ...

  2. python_opencv应用系列1:图片读写

    opencv的读写非常简单,主要用到的就是imread和imwrite两个函数 读取图片示例 import cv2 #imread(filename[, flags]) -> retval im ...

  3. java 中的Number类 Character类 String类 StringBuffer类 StringBuilder类

    1. Number类 Java语言为每一个内置数据类型提供了对应的包装类.所有的包装类(Integer.Long.Byte.Double.Float.Short)都是抽象类Number的子类.这种由编 ...

  4. 504. Inverted Index (Map Reduce) lintcode

    https://www.lintcode.com/problem/inverted-index-map-reduce/description -- decription of the map redu ...

  5. Apache服务器开启gzip压缩的支持

    为什么要在服务器上开启压缩?其实,服务器上开启压缩,对整个网站的就是在服务器上把网页的内容压缩后传给客户端,客户端解压后再显示网页的内容.实际就是增加了服务器端和客户端的工作量,减少了网络传输的数据量 ...

  6. DedeCms中出现Safe Alert: Request Error step 1/2 的解决方法

    dedecms安全警告:Safe Alert: Request Error step 2!不知道大家有没有发现这个现象.只从Dedecms官方公布了之前的版本有严重的漏洞以来,现在在仿站的时候都是采用 ...

  7. vuejs作用域插槽

    作用域插槽 <div id='root'> <child> <template slot-scope='props'> <h1>{{props.item ...

  8. 2018.7.5 jQuery学习

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  9. 【转】git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚

    转载自:http://m.blog.csdn.net/blog/lihongli528628/45483463 [git 删除本地分支] git branch -D br [git 删除远程分支] g ...

  10. ceph-文件存储

    文件存储 ceph文件系统提供了任何大小的符合posix标准的分布式文件系统,它使用Ceph RADOS存储数据.要实现ceph文件系统,需要一个正在运行的ceph存储集群和至少一个ceph元数据服务 ...