洛谷P1640 [SCOI2010] 连续攻击游戏(二分图,匈牙利算法,时间戳)

news2024/9/24 2:33:44

题目链接

https://www.luogu.com.cn/problem/P1640

思路

因为每件装备只能用一次,如果把攻击序列建成点,则本题可以看成是装备和攻击顺序的二分图匹配,因此可以采用匈牙利算法进行求解。
本题的属性值最大为 1 e 4 1e4 1e4,范围有点大,用 m e m s e t memset memset会超时。因此我们可以打上一个时间戳来避免超时。

代码

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6 + 5, M = 2e6 + 5;
const int inf = 0x3f3f3f3f3f3f3f3f;
int n, now;
int chk[N], match[N];
struct Edge
{
	int to, next;
} edge[M];
int head[N], idx;
void init()
{
	memset(head, -1, sizeof head);
	idx = 0;
}
void add_edge(int u, int v)
{
	edge[idx].to = v;
	edge[idx].next = head[u];
	head[u] = idx++;
}
bool find(int u)
{
	for (int i = head[u]; i != -1; i = edge[i].next)
	{
		int ver = edge[i].to;
		if (chk[ver] != now)
		{
			chk[ver] = now;
			if ((match[ver] == -1) || find(match[ver]))
			{
				match[ver] = u;
				return true;
			}
		}
	}
	return false;
}
void solve()
{
	cin >> n;
	init();
	memset(match, -1, sizeof match);
	for (int i = 1, a, b; i <= n; i++)
	{
		cin >> a >> b;
		add_edge(a, i);
		add_edge(b, i);
	}
	int ans = 0;
	for (int i = 1; i <= 1e4; i++)
	{
		now++;//时间戳
		if (find(i)) ans++;
		else break;
	}
	cout << ans << endl;
}
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	int test = 1;
	// cin >> test;
	for (int i = 1; i <= test; i++)
	{
		solve();
	}
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习笔记】Linux系统基础知识3 —— cd命令详解

一、前期准备 1.已经正确安装并成功进入Linux系统 说明&#xff1a;本实验采用的 Redhat 系统&#xff08;因系统不一致&#xff0c;可能部分显示存在差异&#xff09; 二、学习内容 提示&#xff1a;学习Linux系统基础命令 cd 命令详解 1、cd命令 1. 功能说明 cd 命令用…

AI模型对比研究员创意

大语言模型可以接受训练&#xff0c;完成许多任务。其中最广为人知的用途之一是作为生成式人工智能&#xff1a;当收到提示或被问到问题时&#xff0c;它们可以生成文本作为答复。例如&#xff0c;公开的大语言模型 ChatGPT 可以根据用户输入生成文章、诗歌和其他文本形式。 任…

kettle从入门到精通 第八十七课 ETL之kettle kettle文件上传

1、kettle本身文件上传功能不是很友好&#xff0c;甚至是不能直接使用&#xff0c;需要调整文件上传接口才可以正常接收到文件&#xff0c;本次讲解内容主要是通过自定义插件解决这个问题。 2、通过springboot 编写简单demo&#xff0c;模拟文件上传&#xff0c;接口支持三个参…

vue-router路由(重定向,嵌套,动态路由匹配,命名,高亮,守卫)

一、前端路由的概念与原理 路由router就是对应关系。分为前端路由和后端路由。 1后端路由 后端路由指的是&#xff1a;请求方式、请求地址与function处理函数之间的对应关系。在node.js中&#xff0c;express理由的基本用法如下&#xff1a; const express require(expres…

Simple Calculator(算法初阶,代码基础,“纯”手撕)

简单计算器&#xff1a;仅适用无括号加减乘除&#xff0c;算法初阶&#xff0c;代码基础&#xff0c;不调库或模块“纯”手撕。 (笔记模板由python脚本于2024年09月22日 12:08:02创建&#xff0c;本篇笔记适合喜欢用python解决实际问题的coder翻阅) 【学习的细节是欢悦的历程】…

有关在.Net Core中以TEXT类型将Json格式字段存到数据库的学习

导言 在写个值日接口时发现值日表中的值日时段是可以分多段的&#xff0c;想了想可以使用Json类型来存&#xff0c;不过之前没接触过在后端操作Json格式存到数据库的情况&#xff0c;之后学也了解到了一下方法来实现&#xff0c;故记录一下。 过程 从前端到后端再到数据库的 JS…

图片切换示例【JavaScript】

在 JavaScript 中实现图片切换可以通过多种方法&#xff0c;下面是一个简单的示例&#xff0c;使用 HTML、CSS 和 JavaScript 来实现图片的切换效果。 实现效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta c…

VMware Workstation 17.5安装教程

目录 软件介绍 1、下载安装包 2、安装虚拟机 3、卸载虚拟机 软件介绍 VMware&#xff08;虚拟机&#xff09;是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统&#xff0c;通过它可在一台电脑上同时运行更多的Microsoft Windows、Linux…

看Threejs好玩示例,学习创新与技术(React-three-fiber)

什么&#xff0c;竟有人把ThreeJS和React绑定在一起&#xff0c;混着用&#xff1f; 1、VUE劫持问题 暂先把今天的问题先放一边&#xff0c;先简单回顾下vue劫持的情况。vue会把data里面的数据自动转换为属性&#xff0c;方便界面与数据交互。这本身是没有任何问题&#xff0…

快手旗下——Kolors模型部署与使用指南

以下是按照要求重写后的 Kolors 模型部署与使用指南&#xff0c;文章风格偏技术性&#xff0c;但保持简洁和易懂的特点&#xff1a; Kolors 模型部署与使用指南 一、Kolors 简介 Kolors 是由快手 Kolors 团队开发的文本到图像生成模型&#xff0c;基于大规模的潜在扩散技术。…

找不到libcef.dll怎么办,libcef.dll丢失怎么重新安装

在计算机使用过程中&#xff0c;我们常常会遇到各种问题。其中&#xff0c;libcef.dll丢失是一个常见的错误提示。libcef.dll是Chromium Embedded Framework的动态链接库&#xff0c;它是许多应用程序和游戏所必需的组件。当libcef.dll丢失或损坏时&#xff0c;可能会导致程序无…

2025秋招内推|招联金融

【投递方式】 直接扫下方二维码&#xff0c;使用内推码: igcefb 【招聘岗位】 深圳&#xff0c;武汉&#xff1a; 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策划 产品运营 客户体验管理 风险管理 资产管理 【校招流程】 简历投递&#xff1a;9月…

死磕P7: JVM内存划分必知必会(一)

这是「死磕P7」系列第 001 篇文章&#xff0c;欢迎大家来跟我一起 死磕 100 天&#xff0c;争取在 2025 年来临之际&#xff0c;给自己一个交代。 JVM 内存区域划分是面试常考点&#xff0c;属于死记硬背型&#xff0c;比较让人头大的是不同版本的 JDK 具有不同的划分方式&…

计算机毕业设计 基于Python的医疗预约与诊断系统 Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

联合复现!考虑最优弃能率的风光火储联合系统分层优化经济调度!

前言 目前&#xff0c;尽管不断地追逐可再生能源全额消纳方式&#xff0c;大幅减小弃风弃光电量&#xff0c;但是若考虑风电、光伏发电的随机属性&#xff0c;全额消纳可能造成电网峰谷差、调峰难度及调峰调频等辅助服务费用的剧增&#xff0c;引起电网潜在运行风险。因此&…

英特尔AI加速器Gaudi 3下周发布,挑战NVIDIA统治地位!

英特尔正稳步推进其2024年计划&#xff0c;备受瞩目的AI加速器Gaudi3预计将于下周震撼登场。这款被誉为英特尔AI英雄的产品&#xff0c;专注于处理大规模训练和推理任务&#xff0c;拥有无与伦比的扩展能力。面对市场对高效能半导体的旺盛需求&#xff0c;英特尔首席执行官帕特…

Snap 发布新一代 AR 眼镜,有什么特别之处?

Snap 发布新一代 AR 眼镜&#xff0c;有什么特别之处&#xff1f; Snap 简介 新一代的 AR 眼镜特点 Snap 简介 Snap 公司成立于 2010 年&#xff0c;2017 年美国东部时间 3 月 2 日上午 11 时许&#xff0c;在纽交所正式挂牌交易&#xff0c;股票代码为 “SNAP”。其旗下的核…

力扣 2529.正整数和负整数的最大计数

文章目录 题目介绍解法 题目介绍 解法 采用红蓝染色体法&#xff0c;具体介绍参考 红蓝染色体法 通过红蓝染色体法可以找到第一个大于大于target的位置&#xff0c;使所以本题可以找第一个大于0的位置&#xff0c;即负整数的个数&#xff1b;数组长度 - 第一个大于1的位置即正…

2000-2012年各地级市市长特征信息数据/市长特征信息大全数据

2000-2012年各地级市市长特征信息数据 1、时间&#xff1a;2000-2012年 2、来源&#xff1a;百度搜索手工整理 3、指标&#xff1a;省级政区代码、省级政区名称、地市级政区代码、地市级政区名称、年份、市长姓名、出生年份、出生月份、籍贯省份代码、籍贯省份名称、籍贯地市…