CodeForces 779E Bitwise Formula
位运算,枚举。
按按分开计算,枚举$?$是$0$还是$1$,分别计算出$sum$,然后就可以知道该位需要填$1$还是$0$了。
- #include<map>
- #include<set>
- #include<ctime>
- #include<cmath>
- #include<queue>
- #include<string>
- #include<vector>
- #include<cstdio>
- #include<cstring>
- #include<iostream>
- #include<algorithm>
- #include<functional>
- using namespace std;
- int n,m;
- char s[][];
- map<string,int>z;
- char t[];
- int ans1[],ans2[];
- int q[];
- struct X
- {
- int op;
- int x1,x2;
- }p[];
- int main()
- {
- scanf("%d%d",&n,&m);
- for(int i=;i<=n;i++)
- {
- scanf("%s",t);
- z[t]=i;
- scanf("%s",t);
- scanf("%s",t);
- if(t[]==''||t[]=='')
- {
- p[i].op=;
- strcpy(s[i],t);
- }
- else
- {
- if(t[]=='?') p[i].x1=-;
- else p[i].x1 = z[t];
- scanf("%s",t);
- if(t[]=='O') p[i].op=;
- if(t[]=='X') p[i].op=;
- if(t[]=='A') p[i].op=;
- scanf("%s",t);
- if(t[]=='?') p[i].x2=-;
- else p[i].x2 = z[t];
- }
- }
- for(int j=;j<m;j++)
- {
- int sum[]; sum[]=sum[]=;
- for(int tx=;tx<=;tx++)
- {
- for(int i=;i<=n;i++)
- {
- if(p[i].op==) q[i] = s[i][j]-'';
- else
- {
- int x1 = p[i].x1, x2 = p[i].x2;
- if(x1==-) x1 = tx; else x1 = q[x1];
- if(x2==-) x2 = tx; else x2 = q[x2];
- if(p[i].op==) q[i] = (x1|x2);
- else if(p[i].op==) q[i] = (x1^x2);
- else if(p[i].op==) q[i] = (x1&x2);
- }
- }
- for(int i=;i<=n;i++) sum[tx]+=q[i];
- }
- if(sum[]==sum[]) ans1[j]=ans2[j]=;
- else if(sum[]<sum[]) ans1[j]=,ans2[j]=;
- else ans1[j]=,ans2[j]=;
- }
- for(int i=;i<m;i++) printf("%d",ans1[i]); printf("\n");
- for(int i=;i<m;i++) printf("%d",ans2[i]); printf("\n");
- return ;
- }
CodeForces 779E Bitwise Formula的更多相关文章
- CodeForces 778B - Bitwise Formula
题意: 选择一个 m 位的二进制数字,总分为 n 个算式的答案之和.问得到最低分和最高分分别应该取哪个二进制数字 分析: 因为所有数字都是m位的,高位的权重大于低位 ,我们就从高到低考虑 ans 的每 ...
- 【codeforces 779E】Bitwise Formula
[题目链接]:http://codeforces.com/contest/779/problem/E [题意] 给你n个长度为m的二进制数 (有一些是通过位运算操作两个数的形式给出); 然后有一个未知 ...
- Codeforces Problem 778B Bitwise Formula
题目链接:http://codeforces.com/contest/779/problem/E 题意:有n个变量都可以用m位二进制数表示,这n个数的value将以两种格式中的一种给出 1.变量名, ...
- 【推导】【贪心】Codeforces Round #402 (Div. 2) E. Bitwise Formula
按位考虑,每个变量最终的赋值要么是必为0,要么必为1,要么和所选定的数相同,记为2,要么和所选定的数相反,记为3,一共就这四种情况. 可以预处理出来一个真值表,然后从前往后推导出每个变量的赋值. 然后 ...
- CF778B(round 402 div.2 E) Bitwise Formula
题意: Bob recently read about bitwise operations used in computers: AND, OR and XOR. He have studied t ...
- Codeforces 1408I - Bitwise Magic(找性质+集合幂级数)
Codeforces 题面传送门 & 洛谷题面传送门 Yet another immortal D1+D2 I %%%%%% 首先直接统计肯定是非常不容易的,不过注意到这个 \(k\) 非常小 ...
- CodeForces 1408I Bitwise Magic
题意 给定三个整数 \(n,k,c\) 和一个长度为 \(n\) 的序列 \(a\),保证 \(a_i\) 互不相同.可以操作 \(k\) 次,每次随机选择一个 \(a_i\) 变成 \(a_i-1\ ...
- Codeforces Round #402 (Div. 1)
A题卡壳了,往离线倒着加那方面想了会儿,后来才发现方向错了,二十多分钟才过掉,过了B后做D,想法好像有点问题,最后只过两题,掉分了,差一点回紫. AC:AB Rank:173 Rating:2227- ...
- Codeforces Round#402(Div.1)掉分记+题解
哎,今天第一次打div1 感觉头脑很不清醒... 看到第一题就蒙了,想了好久,怎么乱dp,倒过来插之类的...突然发现不就是一道sb二分吗.....sb二分看了二十分钟........ 然后第二题看了 ...
随机推荐
- Maven命令创建java项目
------------------------------java项目搭建--------------------------- 使用Maven构建一个简单的Java项目 1.进入命令行,执行下面的 ...
- nodejs与mongo
1.连接URL (使用数据用户名与密码连接或不使用连接数据库) npm install mongodb --save var mon = require('mongodb').MongoClient; ...
- python 面试题(2)
1.Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一.对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都 ...
- LightOJ 1023 Discovering Permutations 水题
http://www.lightoj.com/volume_showproblem.php?problem=1023 题意:26字母全排列 思路:用next_permutation或者思维想一下都可以 ...
- netcore 使用log4net
1.Install Install-Package log4net 2. conifg 創建文件:log4net.config <?xml version="1.0" enc ...
- java collection(一)
1.Collection层次结构: 2.集合Conllection的基本概念: (1)集合的基本认识:如StringBuffer&StringBuilder是集合(存储的对象类型是String ...
- 消息队列之 ActiveMQ(山东数漫江湖)
简介 ActiveMQ 特点 ActiveMQ 是由 Apache 出品的一款开源消息中间件,旨在为应用程序提供高效.可扩展.稳定.安全的企业级消息通信. 它的设计目标是提供标准的.面向消息的.多语言 ...
- Less & Sass
CSS不是一种编程语言.它开发网页样式,但是没法用它编程.也就是说,CSS基本上是设计师的工具,它没有变量,也没有条件语句,只是一行行单纯的描述.有人就开始为CSS加入编程元素,这被叫做"C ...
- F题 hdu 1431 素数回文
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431 素数回文 Time Limit: 2000/1000 MS (Java/Others) M ...
- B题 hdu 1407 测试你是否和LTC水平一样高
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1407 测试你是否和LTC水平一样高 Time Limit: 2000/1000 MS (Java/Ot ...