cf1072B. Curiosity Has No Limits(枚举)

题意

题目链接

给出两个序列\(a, b\),求出一个序列\(t\),满足

\[a_i = t_i | t_{i + 1}\]

\[b_i = t_i \& t_{i + 1}\]

同时,\(0 \leqslant a_i, b_i, t_i \leqslant 3\)

Sol

打比赛的时候想到了拆位,从此走上不归路。。。

显然,当最后一位确定了之后,其他的数也都跟着确定了,。。

所以暴力枚举每个位置上是哪个数就行。。

/*
*/
#include<bits/stdc++.h> 
#define Pair pair<int, int>
#define MP(x, y) make_pair(x, y)
#define fi first
#define se second
//#define int long long 
#define LL long long 
#define rg register 
#define pt(x) printf("%d ", x);
#define Fin(x) {freopen(#x".in","r",stdin);}
#define Fout(x) {freopen(#x".out","w",stdout);}
using namespace std;
const int MAXN = 1e6 + 10, INF = 1e9 + 10, mod = 1e9 + 7, B = 1;
const double eps = 1e-9;
inline int read() {
    char c = getchar(); int x = 0, f = 1;
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
    return x * f;
}
int N, a[MAXN], b[MAXN], f[MAXN];
void solve(int val) {
    f[N] = val;
    for(int i = N - 1; i >= 1; i--) {
        bool flag = 0;
        for(int j = 0; j <= 3; j++) {
            int nx = f[i + 1]; f[i] = j;
            if((a[i] == (f[i] | f[i + 1])) && (b[i] == (f[i] & f[i + 1]))) {flag = 1; break;}
        }
        if(!flag) return ;
    }
    puts("YES");
    for(int i = 1; i <= N; i++) printf("%d ", f[i]);
    exit(0);
}
main() {
    //Fin(a);
    N = read();
    for(int i = 1; i <= N - 1; i++) a[i] = read();
    for(int i = 1; i <= N - 1; i++) b[i] = read();

    solve(0); solve(1); solve(2); solve(3);
    puts("NO");
    return 0;
}
/*

*/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JackieZheng

并发和多线程-八面玲珑的synchronized

上篇《并发和多线程-说说面试常考平时少用的volatile》主要介绍的是volatile的可见性、原子性等特性,同时也通过一些实例简单与synchronized...

12130
来自专栏java架构师

【SQL Server】系统学习之三:逻辑查询处理阶段-六段式

一、From阶段 针对连接说明: 1、笛卡尔积 2、on筛选器 插播:unknown=not unknuwn 缺失的值; 筛选器(on where having...

372110
来自专栏阮一峰的网络日志

Thunk 函数的含义和用法

本文是《深入掌握 ECMAScript 6 异步编程》系列文章的第二篇。 Generator函数的含义与用法 Thunk函数的含义与用法 co函数库的含义与...

33740
来自专栏跟着阿笨一起玩NET

C# TextBox 扩展方法数据验证

      查看公司项目代码时,存在这样一个问题:winform界面上有很多信息填写,提交后台服务器更新,但数据的合法验证及值的转换却不太敢恭维,一堆的if判断...

14410
来自专栏闻道于事

Java I/O流输入输出,序列化,NIO,NIO.2

32230
来自专栏DannyHoo的专栏

iOS开发中访问并修改一个类的私有属性

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

29420
来自专栏向治洪

Swift 4.0 新特性

WWDC 2017 带来了很多惊喜,在这次大会上,Swift 4 也伴随着 Xcode 9 测试版来到了我们的面前,虽然正式版要8月底9月初才会公布,但很多强大...

24090
来自专栏开发与安全

《linux c 编程一站式学习》课后部分习题解答

1、假设变量x和n是两个正整数,我们知道x/n这个表达式的结果要取Floor,例如x是17,n是4,则结果是4。如果希望结果取Ceiling应该怎么写表达式呢?...

49860
来自专栏我是攻城师

Apache Pig学习笔记之内置函数(三)

49140
来自专栏10km的专栏

thrift/swift:ThriftMethodProcessor代码分析

thrift是一种跨语言的RPC框架,为了保证在各种语言下都能正确表述,IDL语言在设计的时候就只能选取各种语言的共性。 比如对于null,虽然在java中...

21080

扫码关注云+社区

领取腾讯云代金券