题解:

一眼看过去还以为是3-sat

其实d只有8

那么我们可以枚举每一个x选择哪一个

然后再用2-sat处理

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=,M=N<<,ABC='A'+'B'+'C';
struct Edge{int to,next;}e[M];
int n,m,K,pos[],zz[M],ne[M],mi[N],mj[N],fi[N<<],len,st[N],cot;
char Str[N],hi[N],hj[N];bool Mark[N<<],Un[N<<];
void jb(int x,int y)
{
zz[++len]=y;ne[len]=fi[x];fi[x]=len;
zz[++len]=x^;ne[len]=fi[y^],fi[y^]=len;
}
int dfs(int x)
{
if (Mark[x^]||(n>&&Un[x]))return ;
if (Mark[x])return ;
Mark[x]=;st[++cot]=x;
for (int i=fi[x];i;i=ne[i])
if (!dfs(zz[i]))
{
Un[x]=;
return ;
}
return ;
}
void init()
{
memset(fi,,sizeof fi);
memset(Mark,,sizeof Mark);
memset(Un,,sizeof Un);
}
int pd()
{
len=;int n1,n2;
init();
for (int i=;i<=m;i++)
{
if (hi[i]==Str[mi[i]])continue;
n1=hi[i]>ABC-hi[i]-Str[mi[i]];
if (hj[i]==Str[mj[i]])jb(mi[i]<<|n1,mi[i]<<|n1^);
else n2=hj[i]>ABC-hj[i]-Str[mj[i]],jb(mi[i]<<|n1,mj[i]<<|n2);
}
for (int i=;i<=n;i++)
{
cot=;
if (!dfs(i<<))
{
while (cot)Mark[st[cot--]]=;
if (!dfs(i<<|))return ;
}
}
for (int i=;i<=n;i++)
if (Mark[i<<])putchar(Str[i]=='A'?'B':'A');
else putchar(Str[i]=='C'?'B':'C');
return ;
}
int main()
{
scanf("%d%d%s%d",&n,&K,Str+,&m);
int cnt=;
for (int i=;i<=m;i++)scanf("%d%s%d%s",&mi[i],&hi[i],&mj[i],&hj[i]);
for (int i=;i<=n;i++)
if (Str[i]=='x')pos[cnt++]=i;else Str[i]+='A'-'a';
for (int i=;i<<<K;i++)
{
for (int j=;j<K;j++)Str[pos[j]]='A'+(i>>j&);
if (pd())return ;
}
puts("-1");
return ;
}

bzoj4945的更多相关文章

  1. 【BZOJ4945】[Noi2017]游戏 2-SAT

    [BZOJ4945][Noi2017]游戏 题目描述 题解:2-SAT学艺不精啊! 这题一打眼看上去是个3-SAT?哎?3-SAT不是NPC吗?哎?这题x怎么只有8个?暴力走起! 因为x要么不是A要么 ...

  2. LG3825/BZOJ4945/LOJ2305 「NOI2017」游戏 dfs+2-SAT

    问题描述 LG3825 BZOJ4945 LOJ2305 题解 发现对于每个地图,如果没有\(A,B,C\)地图不可以使用\(a,b,c\),就是一个\(\mathrm{3-SAT}\)问题. 有了这 ...

  3. 【BZOJ4945】【NOI2017】游戏(搜索,2-sat)

    [NOI2017]游戏(搜索,2-sat) 题面 BZOJ的SPJ是假的 兹磁洛谷 题解 如果没有\(x\)地图的影响 这就是一个裸的\(2-sat\)问题 但是现在有不超过\(8\)个\(x\)地图 ...

  4. [BZOJ4945][Noi2017]游戏 2-sat

    对于所有的x,我们枚举他的地图类型,事实上我们只需要枚举前两种地形就可以覆盖所有的情况. 之后就变成了裸的2-sat问题. 对于一个限制,我们分类讨论: 1.h[u]不可选,跳过 2.h[v]不可选, ...

  5. BZOJ4945 & 洛谷3825 & UOJ317:[NOI2017]游戏——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4945 https://www.luogu.org/problemnew/show/P3825 ht ...

  6. [bzoj4945][Noi2017]游戏

    题目大意:有$n$个位置,有三种数,每个位置只可以填一种数,$d(d\leqslant8)$个位置有三种选择,其他位置只有两种选择.有一些限制,表示第$i$个位置选了某种数,那么第$j$个位置就只能选 ...

  7. 【BZOJ4945&&UOJ317】游戏(2-sat,拓扑序)

    题意: 思路: 输出方案时有一个优秀的性质可以利用: tarjan缩点之后点所属的分量编号是原图的反的拓扑序 所以只需要在两种方案内找到所属分量编号较小的那个就行了,用来满足(i,i')那个限制 #i ...

  8. 【bzoj4945】[Noi2017]游戏(搜索+2-sat)

    bzoj 洛谷 题意: 现在有\(a,b,c\)三种车,每个赛道可能会存在限制:\(a\)表示不能选择\(a\)类型的赛车,\(b,c\)同理:\(x\)表示该赛道不受限制,但\(x\)类型的个数$\ ...

  9. 并不对劲的bzoj4945:loj2305:uoj317:p3825[NOI2017]游戏

    题目大意 2-SAT,其中有\(d\)(\(d\leq 8\))个点是\(3-SAT\). 题解 枚举\(d\)个点不取三个中(假设三个为\(a,b,c\))的哪一个,然后整体变成做\(2-SAT\) ...

随机推荐

  1. SHUOJ - 算法题1 矩阵连乘问题(区间dp)

    链接:http://acmoj.shu.edu.cn/problem/24/ 分析:设\(dp[i][j]\)为矩阵\(A[i:j]\)所需的最少乘法次数,则有dp方程:\(dp[i][j]=min\ ...

  2. vuejs模仿实现一个电影分享类网站

    前几天朋友发了一个电影分享类网站:http://dy.bingthink.top/ 感觉界面还挺好看的,所以打算用vuejs模仿写一个. 从后台转前端,要学习的东西挺多的,仅以此记录我的学习历程,闲的 ...

  3. 适配移动端的在图片上生成水波纹demo

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

  4. C++类中成员变量的初始化总结(转帖)

    本文转自:C++类中成员变量的初始化总结 1. 普通的变量:      一般不考虑啥效率的情况下 可以在构造函数中进行赋值.考虑一下效率的可以再构造函数的初始化列表中进行.  1 class CA  ...

  5. linux下错误 && 解决方法

    1.使用yum命令安装出现错误 Error: Cannot find a valid baseurl for repo: extras 解决方法: vi /etc/resolv.conf 在此文件最后 ...

  6. vscode + angular

    0.在命令行中,cd到项目下执行: npm install 1.调试->启动调试->node.js, 会生成.vscode/launch.json文件 2.修改launch.json文件& ...

  7. Python学习札记(十二) Function3 函数参数一

    参考:函数参数 Note 1.Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以 ...

  8. pathway一些网站

    1.BioCarta_Pathways https://cgap.nci.nih.gov/Pathways/BioCarta_Pathways

  9. Python基础笔记系列八:字符串的运算和相关函数

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 字符串的运算1.字符串的加法和乘法 python中不但支持字符串相加,还支 ...

  10. Codeforces Round #358 (Div. 2) C. Alyona and the Tree dfs

    C. Alyona and the Tree time limit per test 1 second memory limit per test 256 megabytes input standa ...