当前位置: 首页 > news >正文

LGP4171 [JSTS 2010] 满汉全席 学习笔记

LGP4171 [JSTS 2010] 满汉全席 学习笔记

Luogu Link

前言

鸡 猪 鱼 牛
肉 肉 肉 肉

(这里本来应有一段创主关于汉、满、苗各民族文蛮属性的魔怔言论,但是我记不清了,所以略去。)

题意简述

在原版板子的基础上,那些布尔变量变成了一个取值有两种的变量。好吧其实和布尔变量是等价的。

做法解析

我觉得没什么好解析的。纯纯换皮板子。

所以你也可以认为这篇题解纯属凑数的。大概吧。

代码实现

但是这个换皮板子是带多测的。

#include <bits/stdc++.h>
using namespace std;
using namespace obasic;
const int MaxN=1e2+5;
int N,M,X,Y,ya,yb,na,nb;char ch[2];
int dfn[MaxN<<1],low[MaxN<<1],stk[MaxN<<1],ktp;
vector<int> Gr[MaxN<<1];
int tot,ccnt,bel[MaxN<<1];
void befinit(int n){int nn=n<<1;fill(dfn,dfn+nn+1,0),fill(low,low+nn+1,0);fill(bel,bel+nn+1,0),tot=ccnt=0;for(int i=1;i<=nn;i++)Gr[i].clear();
}
void tarjan(int u){dfn[u]=low[u]=++tot,stk[++ktp]=u;for(auto v : Gr[u]){if(!dfn[v])tarjan(v),minner(low[u],low[v]);else if(!bel[v])minner(low[u],dfn[v]);}if(dfn[u]==low[u]){ccnt++;int v;for(int v;ktp;){v=stk[ktp--],bel[v]=ccnt;if(v==u)break;}}
}
bool twosat(int n){for(int i=1;i<=2*n;i++)if(!dfn[i])tarjan(i);for(int i=1;i<=n;i++)if(bel[i]==bel[i+n])return false;return true;
}
void mian(){readis(N,M);befinit(N);for(int i=1;i<=M;i++){scanf(" %c%d %c%d",&ch[0],&X,&ch[1],&Y);ya=(ch[0]=='h'),yb=(ch[1]=='h');na=ya^1,nb=yb^1;Gr[X+na*N].push_back(Y+yb*N);Gr[Y+nb*N].push_back(X+ya*N);}puts(twosat(N)?"GOOD":"BAD");
}
int Tcn;
int main(){readi(Tcn);while(Tcn--)mian();return 0;
}
http://www.njgz.com.cn/news/1112.html

相关文章:

  • 新认识了一个既简单又好用的AI修图工具丨PhotoDirector Ultra 2025 v16.6 相片大师
  • 浅谈树链剖分
  • 2025年7款效率翻倍项目管理软件工具清单,项目经理生存手册!
  • Java初步了解
  • 微服务学习-01-微服务技术栈导学
  • CVE-2021-25646 Apache Druid 远程代码执行漏洞 (复现)
  • 9N90-ASEMI工业驱动专用9N90
  • 读后感
  • 我的 10 级 Claude Code 速查表让你几分钟内变专家(你现在是第几级?)
  • Docker容器服务端口探测 - Leonardo
  • Docker搭建Hadoop集群
  • 总结与计划 7.28
  • Inventory System Plugin
  • 联邦学习中的持续学习技术
  • CHO细胞抗体表达|重组抗体纯化|高效抗体生产
  • new
  • (阶段二:落地) CMS 模板系统核心数据结构与流程梳理(SceneStack)
  • CAXA3D 实体设计2025最新版本下载安装图文教程,一键快速安装激活
  • 前端开发者的利器:6款最强类EXCEL表格插件对比,轻松实现Excel级交互
  • 软考系统分析师每日学习卡 | [日期:2025-07-28] | [今日主题:操作系统概述]
  • xshell的正则表达式
  • Linux查看PCIe版本及速率
  • 盈鹏飞嵌入式带你玩转T113系列tina5 SDK(7)-使用ADB来传输文件
  • CLion与Beta版:使用Unicode UTF-8提供全球语言支持
  • PowerShell脚本执行打包命令
  • 盈鹏飞嵌入式带你玩转T113系列tina5 SDK(6)-添加心跳灯
  • “轻”是态度,“强”是底气:折叠屏的“成人礼”
  • zip伪加密writeup
  • 25_1 C++函数参数传递方式
  • annocanda配置一个python环境的案例