[BZOJ3495][PA2010][2-SAT]Riddle

【前后缀优化建图+2-SAT】BZOJ3495(PA2010)[Riddle]题解 题目概述有 nn 个点, mm 条边和 KK 个国家(国家里的点已知)。每个国家只能选一个点作为首都,并且要保证最后所有边的两端至少有一个点是首都,问是否存在方案。解题报告每个点是首都或不是首都,只有两个状态,所以是2-SAT问题。mm 条边的限制很容易转化,就是每个国家只能选一个点为首都比较奇怪。 其实这是典型的前后缀优化建图,这里以前缀优化建图为例: 首先我们先增加 nn 个点,令 ii 的 阅读详情

明显的2-SAT模型,但是对于国家的限制,边数是O(n2)的。
可以考虑对有x个城市的国家新建x个结点,第i个结点表示1~i的结点中是否存在首都。那么边数就可以优化到O(n)了

#include <cstdio>
#include <iostream>
#include <algorithm>
#define N 1000010
#define M 5000100

using namespace std;

int n,m,k,cnt,g,tms;
int A[N],B[N];
int G[M],flg[M],low[M],dfn[M],vis[M],stk[M],top;
struct edge{
  int t,nx;
}E[M<<2];

inline char nc(){
  static char buf[100000],*p1=buf,*p2=buf;
  return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}

inline void rea(int &x){
  char c=nc(); x=0;
  for(;c>'9'||c<'0';c=nc());for(;c>='0'&&c<='9';x=x*10+c-'0',c=nc());
}

inline void Insert(int x,int y){
  E[++cnt].t=y; E[cnt].nx=G[x]; G[x]=cnt;
}

void tarjan(int x){
  dfn[x]=low[x]=++tms;
  stk[++top]=x;
  vis[x]=1;
  for(int i=G[x];i;i=E[i].nx)
    if(!vis[E[i].t]) tarjan(E[i].t),low[x]=min(low[x],low[E[i].t]);
    else if(vis[E[i].t]==1) low[x]=min(low[x],dfn[E[i].t]);
  if(low[x]==dfn[x]){
    ++*flg;
    while(1){
      int u=stk[top]; top--;
      flg[u]=*flg;
      vis[u]=2;
      if(u==x||!top) break;
    }
  }
}

int main(){
  rea(n); rea(m); rea(k); g=n;
  for(int i=1;i<=m;i++){
    int x,y; rea(x); rea(y);
    Insert(x<<1|1,y<<1);
    Insert(y<<1|1,x<<1);
  }
  for(int i=1;i<=k;i++){
    int t; rea(t);
    for(int j=1;j<=t;j++) rea(A[j]),B[j]=++g;
    for(int j=1;j<t;j++) Insert(B[j]<<1,B[j+1]<<1);
    for(int j=2;j<=t;j++) Insert(B[j]<<1|1,B[j-1]<<1|1),Insert(B[j-1]<<1,A[j]<<1|1),Insert(A[j]<<1,B[j-1]<<1|1);
    for(int j=1;j<=t;j++) Insert(A[j]<<1,B[j]<<1),Insert(B[j]<<1|1,A[j]<<1|1);
  }
  for(int i=2;i<=(g<<1|1);i++)
    if(!vis[i]) tarjan(i);
  for(int i=1;i<=g;i++)
    if(flg[i<<1]==flg[i<<1|1]) return puts("NIE"),0;
  return puts("TAK"),0;
}

Oracle EBS与SAP数据数据切换至迁移华为MetaERP分析 Oracle EBS到华为MetaERP的数据迁移可采用“表对表复制”思路,因其模块化设计下数据模型标准化、边界清晰。核心业务对象存储在结构明确的主表中,与MetaERP模型兼容度高,便于直接映射。而SAP到MetaERP的迁移则因SAP高度优化的复杂表结构(如簇表/池表)、数据分散冗余、深度依赖配置等特点,无法简单复制,必须采用基于业务对象的迁移方法,通过视图/BAPI提取数据并进行深度转换。两种迁移的本质差异源于源系统的数据模型设计理念不同。 阅读详情

相关推荐

30分钟搭建AI科研写作工作台:基于WorkBuddy的论文全流程加速实践

在人工智能技术日益普及的今天,如何利用智能工具提升专业领域工作效率成为关键课题。其核心原理在于通过模块化设计,将复杂的任务流程拆解为可复用、可编排的标准化技能单元,并结合精准的指令控制,实现从通用对话到深度任务执行的转变。这一技术价值在于显著降低重复性劳动强度,将人的创造力聚焦于核心决策与创新环节。在科研写作、数据分析、代码开发等场景中,这类智能工作台能有效辅助完成文献调研、内容生成、格式校验等繁琐步骤。本文以科研论文写作为具体应用场景,深入探讨如何利用WorkBuddy这一智能工作台,通过配置核心科研技能

weixin_29032489的博客 1486

【BZOJ3495】Riddle(PA2010)-2-SAT+优化建图

测试地址:Riddle 题目大意:n(≤106)n(≤106)n(\le 10^6)个城市被划分成k(≤n)k(≤n)k(\le n)个郡,有m(≤106)m(≤106)m(\le 10^6)条边,要求从每个郡中选取一个城市作为首都,并满足每条边至少有一个端点为首都,判断有没有解。 做法:本题需要用到2-SAT+优化建图。 看到这题第一个想到的是网络流,然而看到这个夸张的数据范围就知道不可能...

Maxwei_wzj的OI世界 517

折叠式共源共栅放大器设计/备忘

w折叠式共源共栅基本结构如图

Czy1377004611的博客 3万+

bzoj3495 PA2010 Riddle(2-sat+建图优化)

我们把每个点当不当首部作为两种选择,得到了一个很显然的2-sat。但是对于m个点中有且仅有一个点当首都这个条件我们的建边是O(n^2)的,gg我们考虑如何优化这个建图,如果我们选择第i个点作为首都,则1~i-1都不能当首都,i+1~m也都不能。于是我们想到前缀和后缀和优化,新建2m个点,分别表示1~i有没有首都,i~n有没有首都。然后我们把这些点之间的限制关系建出来,边数就是O(n)的。

Icefox的博客 304

发那科机器人Modbus通讯配置全攻略:从IP设置到信号调试

本文详细介绍了发那科机器人Modbus通讯的配置方法,从基础认知到IP设置、端口配置、信号调试及故障排查。重点讲解了UOP和DI/DO信号的配置技巧,帮助工程师快速实现机器人与PLC的稳定通讯,提升自动化系统效率。

weixin_27872611的博客 621

最短线性递推式求解与有理函数重建

这一算法来自于我们对“线性递推式拟合”的视角转换,其后得到的算法是自然的。 引理 1. 如果两个有理分式 p1/q1,p2/q2p_1/q_1, p_2/q_2p1​/q1​,p2​/q2​ 均有 deg⁡p<n,deg⁡q≤n\deg p<n, \deg q\leq ndegp<n,degq≤n 且展开式 p1/q1≡p2/q2(modx2n)p_1/q_1 \equiv p_2/q_2 \pmod {x^{2n}}p1​/q1​≡p2​/q2​(modx2n),那么 p1/q1=p2/

Entropy Increaser 的博客 2591

[BZOJ]3495 Riddle 2-Sat 前缀和优化

3495: PA2010 Riddle Time Limit: 30 Sec  Memory Limit: 512 MB Submit: 279  Solved: 97 [Submit][Status][Discuss] Description k个国家,几个城市,m条边。 要求每个国家有且仅有一个首都,每条边两端的城市至少要有一个首都。 判断是否有解, 有解输出“TAK”,无解

Le Petit Prince 525

2026 AI浏览器Agent终极对比:BrowserAct、agentBrowser、PP-Browser 谁更适合落地?(安装+实战+场景全覆盖)

1.不要盲目追求最新框架:很多人跟风用agentBrowser,结果业务是多步骤复杂办公流程,反而不如BrowserAct稳定;2.风控场景优先PP-Browser:但凡需要登录账号、频繁访问正规平台,无脑选PP-Browser,能避开99%的封禁问题;3.AI批量解析优先agentBrowser:做知识库爬取、网页内容总结、批量问答,省Token就是省成本,长期使用性价比碾压另外两者;4.个人开发调试优先BrowserAct:容错高、日志全、调试简单,新手上手最快,不容易报错翻车。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 329

【BZOJ】2199奶牛议会-2-SAT

传送门:bzoj2199 权限题? 没关系,你洛上也有:洛谷- [USACO11JAN]大陆议会The Continental Cowngress 题解 一道2-SAT简单题。 只需要用到2-SAT连有向边的操作,拓扑排序和缩点都不需要,直接暴力找(非常之暴力)。 代码 #include&amp;lt;bits/stdc++.h&amp;gt; using namespace std;...

远行客 426

ubuntu20 安装px4、mavros、QGroundControl

首先安装一下ant,否则没法运行,同时因20.04的缺少动态库libawt_xawt.so无法被Java8给调用,我的解决办法是去18.04把18.04的相同路径下的动态库libawt_xawt.so移动到20.04的/usr/lib/jvm/java-11-openjdk-amd64/lib/路径中。用rosdepc的时候,你得确保你用的是鱼香ROS的提供的ROS安装方法,否则是没有rosdepc的。make px4_sitl gazebo之前,可以安装一下gazebo的 模型。二、安装MAVROS。

qq_58060770的博客 3349

华为OD机试真题2025双机位A卷 C语言 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 351

【2-SAT+前缀优化建图】BZOJ3495 PA2010 Riddle

题面在这里很典型的2-SAT问题…… 可以对每个点是否为首都建图 考虑一条边(u,v),如果u不是首都,则v必须是。反之亦然。 u′→v,v′→uu'\rightarrow v,v'\rightarrow u 然后对于一个国家里的点,有一个是首都则其他都不是首都但是这样边数是N2N^2级别的可以用前缀优化建图。 对于一个点u,建2个变量 分别表示 u是否为首都(u与u’) 和 u所在的国

linkfqy 1328

操作系统 | 知识梳理 | 复习(上)

操作系统复习

知识库搭建ing 3476

bzoj3495 PA2010 Riddle(2-SAT 前缀优化建边)

bzoj3495 PA2010 Riddle原题地址:http://www.lydsy.com/JudgeOnline/problem.php?id=3495题意: k个国家,几个城市,m条边。 要求每个国家有且仅有一个首都,每条边两端的城市至少要有一个首都。 判断是否有解, 有解输出“TAK”,无解输出”NIE”。数据范围 1 < = k, N ,M , < =1000000题解:

Bfk的博客 599

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

BZOJ 3495: PA2010 Riddle 2-SAT:前缀优化建图

title BZOJ 3495 Description 有n个城镇被分成了k个郡,有m条连接城镇的无向边。 要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都。 Input 第一行有三个整数,城镇数n(\(1\le n\le10^6\)),边数m(\(0\le m\le10^6\)),郡数k(1<=k<=n)。 接下来m行,每行有两个整数ai和bi(ai≠...

dilu0653的博客 277

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

BZOJ3495 PA2010 Riddle 【2-sat】

题目链接 BZOJ3495 题解 每个城市都有选和不选两种情况,很容易考虑到2-sat 边的限制就很好设置了,主要是每个郡只有一个首都的限制 我们不可能两两之间连边,这样复杂度就爆炸了 于是乎就有了一个非常厉害的方法: 前缀后缀和 我们令\(1\)表示选,\(0\)表示不选,维护一个郡的前缀和、后缀和 一个点如果作为首都,那么它和它对应前缀后缀和的位置一定为\(1\),且之前的位置一定为\(0\)...

weixin_30685047的博客 125

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

bzoj 3495: PA2010 Riddle 2-sat

bzoj 3495: PA2010 Riddle

Rising_shit的博客 919

【BZOJ】3495: PA2010 Riddle 2-SAT算法

【题意】有n个城镇被分成了k个郡,有m条连接城镇的无向边。要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都。n,m,k<=10^6。 【算法】2-SAT,前后缀优化建图 【题解】每个城镇只有作为首都和不是首都两种选项,即2-sat问题。 2-sat问题中所有边必须加反向边,下面过程忽略反向边。 对于一条边(x,y),如果x是0,那么y必须是1,即x-y'。(y-x'是...

weixin_33919950的博客 314

[BZOJ3495]PA2010 Riddle[2-SAT]

对于一个国家内部,每个点都要向剩下的所有点连边,会有\(O(n^2)\)条边 学习了前缀和优化建图的新姿势 在每个点拆成两个的基础上,再开两个点 \(i_3\),\(i_4\)表示前缀\([1,i]\)中有/没有首都 这个blog讲得比较详细 struct Edge { int v, next; } G[MAXN << 3]; int head[MAXN << 2], ...

weixin_34411563的博客 158

bzoj 3495: PA2010 Riddle(2-SAT)

3495: PA2010 Riddle Time Limit: 30 Sec  Memory Limit: 512 MB Submit: 327  Solved: 115 [Submit][Status][Discuss] Description k个国家,几个城市,m条边。 要求每个国家有且仅有一个首都,每条边两端的城市至少要有一个首都。 判断是否有解, 有解输出“TAK”,无

加载中... 435

[BZOJ]3495: PA2010 Riddle 2-SAT

Description k个国家,几个城市,m条边。 要求每个国家有且仅有一个首都,每条边两端的城市至少要有一个首都。 判断是否有解, 有解输出“TAK”,无解输出”NIE” 1 &lt; = k, N ,M , &lt; =1000000。 题解: 直接建边的话边数太大,所以建多2n2n2n个点分别表示这个国家前nnn个城市中有没有首都,后nnn个城市中有没有首都。然后就比较...

TYB的博客 373

3495: PA2010 Riddle 2-sat 前缀优化

3495: PA2010 Riddle 2-sat 前缀优化 链接 bzoj 思路 不想说啥了,看hwim的吧,我去睡觉了zZ。 代码 /************************************************************** Problem: 3495 User: gryz2016 Language: C++ Resu...

weixin_30258027的博客 135

BZOJ.3495.[PA2010]Riddle(2-SAT 前缀优化建图)

题目链接 每个城市要么建首都要么不建,考虑2-SAT 这样一个国家内城市两两连边是很显然的,但是边数为O(n^2) 每个国家中仅有一个建首都,考虑新建前缀S[i]=1/0这2n个点表示当前国家的[1,i]中建了/没建首都 现在考虑这些限制:(A[i]=1/0表示i城市建/不建) 0.若A[i]=1,则S[i]=1;若S[i]=0,则A[i]=0(对于i自己) 1.若A[i]=1,则S[i-1]=0...

weixin_30763455的博客 148

基于STM32的户外鸽舍智能驯养系统设计与实现

嵌入式系统可靠性设计是工业与户外场景的核心挑战。在弱供电、无人值守环境中,设备需同时保障电源稳定、逻辑抗扰与数据连续。STM32作为高性价比主流控制器,配合RFID识别、看门狗复位与RS485组网,可构建完整的自动化闭环。以实际鸽舍驯养需求为切入点,一套基于STM32的智能驯养设备为此提供了范例:通过太阳能供电与两级稳压解决户外供电问题,利用低频RFID精确识别归巢个体,结合状态机实现条件反射式奖励,并借助RS485总线与云端平台完成远程监控。系统经两个月运行验证,识别率超99%,数据零丢失。同时总结了继电

weixin_33843947的博客 237
上一篇: [BZOJ4259][FFT]残缺的字符串
下一篇: [BZOJ3679][数位DP]数字之积
LowestJN
博客等级 码龄10年 76粉丝 422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值