Codeforces Round #443 (Div. 2) C Short Program
来源:互联网 发布:电脑电子琴软件下载 编辑:程序博客网 时间:2024/06/09 22:13
题解 : 这个题目让你求少于 5 个的一种表示,对于每一个数的使用。其实就是对于每个数的每一位不管是 0 还是 1 都可以变成相应的数 我们就可以先让每一位都是 0 和每一位都是1 的数 (0 和 1023) 分别对这些操作进行操作,然后,这样的话我们就知道了每一位0、1操作之后变成了什么东西,然后我们就可以仅用 | 和 ^操作表示这些操作 ans <= 2; 具体细节看代码.
#include <iostream>#include <algorithm>#include <cstring>using namespace std;int main () { ios_base :: sync_with_stdio(false); int n; cin >> n; int a = 0,b = 1023; for (int i = 1;i <= n; ++ i) { char c; int val; cin >> c >> val; if (c == '|') { a |= val,b |= val; } else if (c == '&') a &= val,b &= val; else a ^= val,b ^= val; } int numor = 0,numxor = 0; for (int i = 0;i < 10; ++ i) { int u = (1 << i); if ((u & a) && (u & b)) { numor += u; } if ((u & a) && !(u & b)) numxor += u; if (!(u & a) && !(u & b)) { numxor += u; numor += u; } } int ans = (numor > 0) + (numxor > 0); cout << ans << endl; if (numor) { cout << '|' << ' ' << numor << endl; } if (numxor) { cout << '^' << ' ' << numxor << endl; } return 0;}
阅读全文
0 0
- Codeforces Round #443 (Div. 2): C. Short Program
- Codeforces Round #443 (Div. 2) C Short Program
- Codeforces Round #443 (Div. 2) C. Short Program
- Codeforces Round #443 (Div. 2) C. Short Program
- Codeforces Round #443 (Div. 2) C. Short Program 【模拟】
- Codeforces Round #879 (Div. 2) C. Short Program
- Codeforces Round #443(Div.2) C.Short Program(位运算+思维)
- Codeforces #443 Div.2 C. Short Program 【位操作】
- Codeforces Round #443 (Div. 1) A. Short Program
- Codeforces 879C Short Program【思维】
- CF #443 C Short Program
- 【codeforces】Codeforces Round #370 (Div. 2) C
- Short Program CodeForces
- Codeforces Round #443 (Div. 2)
- Codeforces Round #443 (Div.2)
- Codeforces Round #443 (Div. 2)
- Codeforces Round #443 (Div.2)
- Codeforces Round #443 (Div.2)
- Itext 画PDF实例
- 学习Linux C编程之预处理与结构体
- 线程池
- Java常用类之String类
- NumPy数据存取
- Codeforces Round #443 (Div. 2) C Short Program
- 矩阵乘法及其应用
- Kruscal
- C. Short Program
- Java并发编程之CAS
- 575. Distribute Candies
- Linxu查不到IP
- Python_字符串
- 图的遍历:深度优先、广度优先