UVa1327/LA2966 King’s Quest

UVa1327/LA2966 King’s Quest

  • 题目链接
  • 题意
  • 分析
  • AC 代码

题目链接

  本题是2003年icpc欧洲区域赛东北欧赛区的K题

题意

  从前有一个国王,他有n(n≤2000)个儿子。皇宫里还有n个美丽的女孩,并且国王知道每一个王子喜欢的女孩都是谁。王子们都年轻强壮并且富有智慧,所以一个王子喜欢很多女孩也是很正常的。
  国王找到巫师,告诉巫师每个王子所喜欢的女孩们,并且要求巫师找到一种方案,使每个王子都娶到一个自己喜欢的女孩。当然,一个女孩只能嫁给一个王子。
  巫师提交了一种方案,国王看了之后说:“我挺喜欢你的方案,但我不是十分满意。我还想知道每一个王子能娶的所有女孩,当然,他娶了某个女孩之后,剩下的其他王子还是可以找到自己喜欢的人作为自己的伴侣。”
  输入n个王子各自喜欢的女孩的列表,以及巫师提交的方案(即每个王子的新娘),你的任务是计算出每个王子有可能娶到的女孩的列表。

分析

  经典问题:已知二分图的一个最大匹配方案,怎么求其他匹配方案。不过作为婚姻问题,本题只有男方有候选列表,女方被动等待分配结果。
  可以借助有向图强连通分量的Tarjan算法求解(求出所有scc后,如果某男和某女在同一个scc且可以匹配——此女在某男的候选列表,则两者匹配后,其他男女间仍然存在最大匹配方案),说一下建图方法:利用男方候选列表加单向边 x i → y j x_i\rightarrow y_j xiyj,利用一个完美匹配的方案加单向边 y i → x j y_i\rightarrow x_j yixj。思路参考自这篇博客。

AC 代码

#include <iostream>
#include <cstring>
using namespace std;#define N 4020
int g[N][N>>1], c[N], s[N], sn[N], pre[N], clk, cc, n, p = 0;int dfs(int u) {int low = pre[u] = ++clk; s[p++] = u;for (int i=0, v; i<c[u]; ++i) if (!pre[v = g[u][i]]) {low = min(low, dfs(v));} else if (!sn[v]) low = min(low, pre[v]);if (low == pre[u]) {++cc;while (true) {sn[s[--p]] = cc;if (s[p] == u) break;}}return low;
}void solve () {memset(pre, clk = 0, sizeof(pre)); memset(sn, cc = p = 0, sizeof(sn));for (int i=1; i<=n; ++i) {cin >> c[i]; c[i+n] = 1;for (int j=0; j<c[i]; ++j) cin >> g[i][j], g[i][j] += n;}for (int i=1, x; i<=n; ++i) cin >> x, g[x+n][0] = i;for (int u=1; u<=n; ++u) if (!pre[u]) dfs(u);for (int i=1, k; i<=n; ++i) {for (int j=k=0, x; j<c[i]; ++j) if (sn[i] == sn[x = g[i][j]]) s[k++] = x-n;cout << k;while (k--) cout << ' ' << s[k];cout << endl;}
}int main() {ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);while (cin >> n) solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/374420.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GD32F303之CAN通信

1、CAN时钟 GD32F303主时钟频率最大是120Mhz,然后APB1时钟最大是60Mhz,APB2时钟最大是120Mhz,CAN挂载在APB1总线上面 所以一般CAN的时钟频率是60Mhz,这个频率和后面配置波特率有关 2、GD32F303时钟配置 首先我们知道芯片有几个时钟 HXTAL&#xff1a;高速外部时钟&#xff1…

elementui实现复杂表单的实践

简介 文章主要讲述在vue3项目中使用elementui框架实现复杂表单的方式。表单中涉及动态组件的生成、文件上传和富文本编辑器的使用&#xff0c;只会将在实现过程中较复杂的部分进行分享&#xff0c;然后提供一份完整的前端代码。 表单效果演示 基础信息 spu属性 sku详情 关键…

曝宝马汽车门店亏损严重价格战带来的伤害太大了

今年以来不仅餐饮行业难,就连一些车企都陷入困境当中,多家车企选择打价 格战。只不过日前的时候媒体爆料称,宝马汽车门店因为打价格战,最终亏损严 重,为了避免亏损再度出现,因此宝马7月将会开始降量保价。文章来源于&#xff1a;股城网www.gucheng.com 实际上,进入2024年…

如何在 C 语言中进行选择排序?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; &#x1f4d9;C 语言百万年薪修炼课程 通俗易懂&#xff0c;深入浅出&#xff0c;匠心打磨&#xff0c;死磕细节&#xff0c;6年迭代&#xff0c;看过的人都说好。 文章目…

B站大课堂-自动化精品视频(个人存档)

基础知识 工业通信协议 Modbus 施耐德研发&#xff0c;有基于以太网的 ModbusTCP 协议和使用 485/232 串口通信的 ModbusRTU/ASCII。 Modbus 协议面世较早、协议简洁高效、商用免费、功能灵活、实现简单&#xff0c;是目前应用最广泛的现场总线协议。 我的笔记里边有一些推荐…

本地开发微信小程序,使用巴比达内网穿透

在微信小程序开发的热潮中&#xff0c;开发者常面临的一个挑战是如何在复杂的网络环境下测试和调试内网环境中的服务。巴比达正为这一难题提供了一条解决方案&#xff0c;极大简化了微信小程序与内网服务器之间通信的流程&#xff0c;加速了开发迭代周期。 以往&#xff0c;开…

关于力反馈设备应用方向的探讨

力反馈是在虚拟现实 (VR)等模拟环境中通过机动运动或阻力模拟真实世界的物理触觉。大多数人都是通过视频游戏控制器&#xff08;如方向盘或踏板&#xff09;和其他设备&#xff08;如飞行模拟器操纵杆&#xff09;来了解力反馈效果。但我们都知道该技术的用途远不止于游戏。 触…

Golang语法规范和风格指南(一)——简单指南

1. 前引 一个语言的规范的学习是重要的&#xff0c;直接关系到你的代码是否易于维护和理解&#xff0c;同时学习好对应的语言规范可以在前期学习阶段有效规避该语言语法和未知编程风格的冲突。 这里是 Google 提供的规范&#xff0c;有助于大家在开始学习阶段对 Golang 进行一…

基于 BERT 的非结构化领域文本知识抽取

文章目录 题目摘要方法实验 题目 食品测试的大型语言模型 论文地址&#xff1a;https://arxiv.org/abs/2103.00728 摘要 随着知识图谱技术的发展和商业应用的普及&#xff0c;从各类非结构化领域文本中提取出知识图谱实体及关系数据的需求日益增加。这使得针对领域文本的自动化…

【UE5】调用ASR接口,录制系统输出。录制音频采样率不匹配

暂时测出window能用。阿里的ASR接口当前仅支持8000和16000。UE默认采样44100。

MES系统助力塑料制品行业数字化转型

注塑MES系统助力工厂生产力提升具体体现在&#xff1a;覆盖生产全流程&#xff1b;数据自动收集、科学规划排产&#xff1b;优化配送模型、平衡物流运转&#xff1b;严格把控品质、异常自动分析&#xff1b;实时监控设备&#xff0c;保证正常运转&#xff1b;产品快速追溯&…

教学神器大比拼:SmartEDA、Multisim、Proteus,谁是你的最佳选择?

随着科技的飞速发展&#xff0c;教学工具也在不断升级。在电子设计自动化&#xff08;EDA&#xff09;和电路仿真领域&#xff0c;SmartEDA、Multisim和Proteus三款软件备受关注。那么&#xff0c;对于广大教育工作者和学生们来说&#xff0c;这三者之间该如何选择呢&#xff1…

AI绘画之儿童绘本制作变现途径(附详细教程)

AI技术飞速发展&#xff0c;创作儿童绘本或是故事书已经不再是专业插画师和作家的专利。在AI技术的介入下&#xff0c;为那些有创意但缺乏绘画技巧的人们打开了一扇新的大门。通过AI工具&#xff0c;我们可以轻松地创作出既有趣又富有教育意义的儿童故事书&#xff0c;并通过多…

LLMs可以进行任务规划吗?如果不行,LLMs+GNN可以吗?

深度图学习与大模型LLM(小编): 大家好,今天向大家介绍一篇最新发布的研究论文&#xff08;20240530&#xff09;。这篇论文探讨了如何通过引入GNN来提高大模型在任务规划(task planning)中的性能。*论文分析了LLMs在任务规划上的局限性,并提出了一种简单而有效的解决方案。* 1.…

@RequiredArgsConstructor实现构造器注入

RequiredArgsConstructor实现构造器注入 1. Autowired 和 Resource 注解 Autowired Autowired 是 Spring 框架提供的注解&#xff0c;用于自动装配依赖。可以用于字段、构造函数和 setter 方法。 Autowired private ISysUserService userService;Resource Resource 是 Jav…

python接口自动化(二十一)--unittest简介(详解)

宏哥微信粉丝群&#xff1a;https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 简介 前边的随笔主要介绍的requests模块的有关知识个内容&#xff0c;接下来看一下python的单元测试框架unittest。熟悉 或者了解java 的小伙伴应该都清楚常见的单元测试框架 Junit 和…

广州旭之源模块电源PIN TO PIN替换金升阳

广州旭之源科技有限公司&#xff0c;创立ATAZ工业电源品牌&#xff0c;是一家集研发、生产、销售和服务于一体的标准工业电源解决方案提供商。 以电力电子和自动化控制为核心技术&#xff0c;产品涵盖了壳架式、模块式、导轨式等工业电源。所生产的产品广泛应用于工业控制、电力…

AIGC产品经理学习路径

基础篇&#xff08;课时 2 &#xff09; AIGC 行业视角 AIGC 的行业发展演进&#xff1a;传统模型/深度学习/大模型 AIGC 的产品设计演进&#xff1a;AI Embedded / AI Copilot / AI Agen AIGC 的行业产业全景图 AIGC 的产品应用全景图 AIGC 职业视角 AI 产品经理/ AIGC…

vue3中antd上传图片组件及回显

实现效果&#xff1a; 调用后端接口后&#xff0c;后端返回的数据&#xff1a; 1.在项目components/base下新建UploadNew.vue文件&#xff08;上传图片公共组件&#xff09; <template><div class"clearfix"><a-uploadv-model:file-list"fileL…

视频汇聚平台EasyCVR设备录像回看请求播放时间和实际时间对不上,是何原因?

安防监控EasyCVR视频汇聚平台可提供多协议&#xff08;RTSP/RTMP/国标GB28181/GAT1400/海康Ehome/大华/海康/宇视等SDK&#xff09;的设备接入、音视频采集、视频转码、处理、分发等服务&#xff0c;系统具备实时监控、云端录像、回看、告警、平台级联以及多视频流格式分发等视…