Codeforces 517 #B
http://codeforces.com/contest/1072/problem/B
开始想的只有搜索,时间复杂度$O(4^n)$,明显有问题。
想了半个小时没有思路,然后想到了正难则反,就开始步入正轨。
题目给出了$a[ ]$和$b[ ]$数组,首先与处理,我们枚举每一种情况的$a[i]$和$b[i]$,然后枚举ans[i]表示当为$ans[i]$时下一个数可以填几,预处理完你会发现,有合法的数对的情况只有一种。
预处理时间复杂度$O(4^4)$
接下来我们可以枚举答案序列的第一位填啥,从而可以推出其他的数字填啥。
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int f[][][];
int n,a[],b[],ans[];
bool check()
{
for(int i=;i<=n;i++)
{
ans[i]=f[a[i]][b[i]][ans[i-]];
if(ans[i]==-)return ;
}
return ;
}
int main()
{
memset(f,-,sizeof(f));
for(int i=;i<=;i++)
{
for(int j=;j<=;j++)
{
for(int k=;k<=;k++)
{
for(int p=;p<=;p++)
{
int x=p|k,y=p&k;
if(x==i&&y==j)f[i][j][k]=p;
}
}
}
}
bool flag=;
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
for(int i=;i<=n;i++)scanf("%d",&b[i]);
for(int i=;i<=;i++)
{
ans[]=i;
if(check())
{
flag=;
break;
}
}
if(!flag)printf("NO");
else
{
printf("YES\n");
for(int i=;i<=n;i++)printf("%d ",ans[i]);
}
}
Codeforces 517 #B的更多相关文章
- Codeforces 517 #A
http://codeforces.com/contest/1072/problem/A 题目挺简单,就是让你求几个环,占得方格的个数,然而题目为什么给出了公式呢? 然而给出的公式辣么丑,还是不用的好 ...
- Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2)
Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2) #include <bits/stdc++ ...
- Codeforces Round #517 体验记
原文链接 https://www.cnblogs.com/zhouzhendong/p/CF1071.html 赛前: 呀,这个 Round # 必须打啊. 于是临时改变注意决定打这一场.用小号打. ...
- Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2) D. Minimum path
http://codeforces.com/contest/1072/problem/D bfs 走1步的最佳状态 -> 走2步的最佳状态 -> …… #include <bits/ ...
- Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2) D. Minimum path(字典序)
https://codeforces.com/contest/1072/problem/D 题意 给你一个n*n充满小写字母的矩阵,你可以更改任意k个格子的字符,然后输出字典序最小的从[1,1]到[n ...
- Codeforces Round #517 (Div. 2) C. Cram Time(思维+贪心)
https://codeforces.com/contest/1065 题意 给你a,b,让你找尽量多的自然数,使得他们的和<=a,<=b,用在a和b的自然数不能重复 思路 假如只有一个数 ...
- Codeforces Round #517 (Div. 2)(1~n的分配)
题:https://codeforces.com/contest/1072/problem/C 思路:首先找到最大的x,使得x*(x+1)/2 <= a+b 那么一定存在一种分割使得 a1 &l ...
- Codeforces Round #517 Div. 2/Div. 1
\(n\)天没更博了,因为被膜你赛的毒瘤题虐哭了... 既然打了这次CF还是纪念一下. 看看NOIP之前,接下来几场的时间都不好.这应该是最后一场CF了,差\(4\)分上紫也是一个遗憾吧. A 给一个 ...
- Codeforces Round #517 (Div. 2)
A #include<queue> #include<cstdio> #include<cstring> #include<algorithm> #de ...
随机推荐
- HTTPRunner实践二——参数化之生成UUID
接口测试中,需要使用到UUID,用来生成唯一ID. 1.什么是UUID UUID是128位的全局唯一标识符,通常由32字节的字符串表示.它可以保证时间和空间的唯一性,也称为GUID,全称为:UUID ...
- Centos7中给gitLab汉化
第一步:安装git 下载补西,东西在清华大学开源中心 yum install –y git 第二步:下载 git clone https://gitlab.com/xhang/gitlab.git 第 ...
- sql server添加sa用户和密码
昨天给网站“搬家”(更换服务器),我是在win7上安装的 sql server2012,安装过程很顺利,用“Windows 身份验证” 也可正常访问.但是用sa用户访问数据库出现了 错误:18456. ...
- STP-14-MST配置
在配置MST之前,工程师要进行一定程度的预先规划.首先,必须决定是否应该使用多区域设计,以及如何设置边界.多区域的设计使得每个区域都有独立的MST实例编号.VLAN到实例的映射,以及独立的实例根.整体 ...
- iOS 隐藏百度地图SDK的百度LOGO
第一个思路:找到LOGO对应的UIIMageView,并将其隐藏hidden // 隐藏百度地图Logo UIView *mView = _mapView.subviews.firstObject; ...
- BZOJ 1899&&luogu P2577: [Zjoi2004]Lunch 午餐 贪心+DP
贪它,再大力DP(话说觉得此题简单的真的是大佬QAQ)我想了两天...QWQ 贪心:吃饭慢的先打饭(不太会证...) DP:f[i][j]表示前i个人,在1号窗口打饭的总时间时j,的最短时间 确定i的 ...
- Qconf安装文档
1.操作系统配置(以root用户执行) 1)安装编译工具 cmake(已经安装过可以跳过) yum install -y cmake 2.安装Qconf 1)下载安装源码 wget http://10 ...
- centos下svnadmin的部署过程
1. 安装SVN #yum –y install subversion 2. 安装openjdk #yum –y list java* #yum –y install java-1.8.0 ...
- 举例实用详解sc.textFile()和wholeTextFiles()
谈清楚区别,说明白道理,从案例开始: 1 数据准备 用hdfs存放数据,且结合的hue上传准备的数据,我的hue截图: 每个文件下的数据: 以上是3个文件的数据,每一行用英文下的空格隔开: 2 测试 ...
- WPF (VisualChildren)可视化子元素详解
VisualChildrenCount 的 FrameworkElement 实现始终返回 0 或 1. 如果类所要维护的可视化子元素集合的成员数可能超过 1,则这样的类必须重写此属性和 Ge ...