AT_jsc2019_qual_e Card Collector

news/2025/11/17 19:50:47/文章来源:https://www.cnblogs.com/UesugiErii-/p/19234201

首先考虑什么情况不合法。假设 \(S\) 为选出卡片的集合,玩一下发现不合法当且仅当存在 \(T\subseteq S\)\(X=\{x|(x,y)\in T\}\)\(Y=\{y|(x,y)\in T\}\) 满足 \(|X|+|Y|<|T|\)

假设当前需要加入一个点 \((x_i,y_i)\) 考虑限制。发现这个对于任意集合很不好做,于是考虑最严格的限制。

对于 \(S\) 中的 \((x,y)\)

  1. \(x\in X,y\notin Y\)\(x\notin X,y\in Y\),加入 \(T\) 一定不劣。

  2. \(x\in X,y\in Y\),加入 \(T\) 一定不劣。

  3. \(x\notin X,y\notin Y\),不加入 \(T\) 一定不劣。

于是每选入卡片 \((x,y)\),将行 \(x\) 向列 \(y\) 连边。\((x,y)\) 能选入的条件为:

  1. \(B_x=B_y\)\(e_{B_x}<|B_x|\)

  2. \(B_x\ne B_y\)\(e_{B_x}+e_{B_y}<|B_x|+|B_y|\)

其中 \(B_i\)\(i\) 所在的连通块,\(e_i\) 为连通块 \(i\) 中的边数。

#include<bits/stdc++.h>
#define fin(x) freopen(#x".in","r",stdin)
#define fout(x) freopen(#x".out","w",stdout)
#define fr(x) fin(x),fout(x);
#define Fr(x,y) fin(x),fout(y)
#define INPUT(_1,_2,FILE,...) FILE
#define IO(...) INPUT(__VA_ARGS__,Fr,fr)(__VA_ARGS__)
using namespace std;
#define mp make_pair
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back
#define cfast ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define ll long long
#define ull unsigned long long
#define intz(x,y) memset((x),(y),sizeof((x)))
char *p1,*p2,buf[100000];
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
#define tup(x) array<int,(x)>
inline ll read(){ll x=0,f=1;char ch=nc();while(ch<48||ch>57){if(ch=='-')f=-1;ch=nc();}while(ch>=48&&ch<=57)x=x*10+ch-48,ch=nc();return x*f;
}
const int N=2e6+5;
int b[N<<1],tot,f[N<<2],siz[N<<2],ct[N<<2];
int find(int x){return x==f[x]?x:f[x]=find(f[x]);}
struct node{int x,y;ll v;}a[N];
inline void UesugiErii(){int n,r,c;cin>>n>>r>>c;for(int i=1;i<=n;i++)cin>>a[i].x>>a[i].y>>a[i].v;sort(a+1,a+1+n,[](node x,node y){return x.v>y.v;});ll s=0,cnt=0,res=0;for(int i=1;i<=r+c;i++)f[i]=i,siz[i]=1;for(int i=1;i<=n;i++){int X=a[i].x,Y=a[i].y,x=find(X),y=find(Y+r);if(ct[x]<siz[x]||ct[y]<siz[y]){if(x!=y)f[x]=y,siz[y]+=siz[x],ct[y]+=ct[x];++ct[y],res+=a[i].v;}}cout<<res;
}
signed main(){cfast;int _=1;//cin>>_;for(;_;_--)UesugiErii();return 0;
}

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

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

相关文章

人工智能之编程基础 Python 入门:第八章 函数与装饰器

人工智能之编程基础 Python 入门:第八章 函数与装饰器人工智能之编程基础 Python 入门 第八章 函数与装饰器@目录人工智能之编程基础 Python 入门前言函数1. 函数的定义与调用基本语法简单示例2. 函数的组成部分3. 参…

邻项交换

又称微扰法等 例题 最小化最大延迟惩罚 有 n 个任务,每个任务有一个有用时 \(p_i\) 和一个截止时间 \(d_i\),若完成时间为 \(c_i\),要最小化 \(max{c_i - d_i}\)。 考虑如果有两个相邻的 \(i\) 和 \(j\),不交换答案…

day26-MCP基础

MCP快速入门实战 一、MCP技术体系介绍 MCP,全称是Model Context Protocol,模型上下文协议,由Claude母公司Anthropic于2024年11月正式提出。MCP解决的最大痛点,就是Agent开发中调用外部工具的技术门槛过高的问题。 …

20232427 2025-2026-1 《网络与系统攻防技术》实验六实验报告

一、实验内容 本次实验聚焦 Metasploit 攻击渗透实践,核心内容包括两部分:一是前期渗透准备,通过主机发现、端口扫描及漏洞扫描获取靶机基础信息;二是漏洞渗透利用,针对 Metasploitable2 靶机的 4 类典型漏洞(Vs…

P9534 [YsOI2023] 广度优先遍历

考虑一个事情,把树建出来后,非树边都可以扔到后面去,这显然不影响答案。 思考为什么树边的顺序会影响答案,实质是因为一个结点 \(x\) 连了许多非树边,若是这些非树边先被访问了,那么 \(x\) 的父亲就要换了,因此…

2025-11-17 ZYZ28-NOIP模拟赛-Round7 hetao1733837的record

2025-11-17 ZYZ28-NOIP模拟赛-Round7 hetao1733837的record2025-11-17 ZYZ28-NOIP模拟赛-Round7 hetao1733837的record 好累😩 比赛链接:ZYZ28-NOIP模拟赛-Round7 - ZYZOJ A.pmst $( ‵▽′)ψ$$lz$竟然把原来的$T2…

day25-langgraph进阶

整体课程设计介绍 第一次直播:开班介绍+环境适配+自主学习任务布置 任务:预习系列(参考2期)day20-大模型基本概述+API调用 day21-大模型基本概述+API调用 day22-langchain框架基础 day23-langchain框架进阶第二次直…

markdown格式绘制各种图

推荐使用 Mermaid 进行绘制

11.17 考试总结

11.17 考试总结 赛时复盘 7:50-8:10 通读了题面,有了点第一印象,T1感觉像是贪心,T2没什么头绪,T3是计数题看数据范围感觉像是个简单DP,T4感觉很困难,决定了开题顺序:1-3-2-4。 8:10-9:10 根据特殊性质先想树上发…

计算机网络第六章---应用层(基于谢希仁老师第八版)

​ 6.1域名系统DNS(Domain Name System) 作用:把主机名字转化为IP地址 理论上整个互联网可以只使用一个域名服务器,但是规模太大不可取,所以采用了层次树状结构的命名方法,并使用分布式的域名系统DNS===>采用…

第一次接触 JSAPIThree(百度地图 JSAPI Three)学习笔记

这是一篇关于百度地图 JSAPI Three(mapvthree)的入门学习笔记,以初学者的视角记录从安装配置到第一个 Hello World 的完整学习过程,包含详细的步骤说明和实践经验。作为一个前端小白,今天要开始学习百度地图的 JS…

Who wants to be king:2

前言写这篇文章的本意,是为了记录关于vulnhub上的靶机who wants to be king2的练习过程,同时向社区大佬请教一个问题,希望各位大佬可以指点一下。问题如下:这个靶机提权部分按照靶机作者的思路,是要到.mozilla文件…

写日记是对的

正经人谁写日记,但我认为写日记好像确实对的,它可以唤起你的初心。 而且可以看到每天的成果。 也许可以继续恢复写日记的习惯。

vulkan学习笔记第一篇_环境部署

vulkan sdk安装流程: 下载vulkan sdk 打开下方链接到sdk下载主页,选择你对应的平台。 https://vulkan.lunarg.com/sdk/home#windows点击下载sdk installer双击下载好的sdk installer(暂未有经验告知哪些不勾选)全部勾…

2025!超简单安装部署gitlab

1.gitlab二进制文件下载地址: 官方网站: gitlab/gitlab-ce - Packages packages.gitlab.com 清华镜像站: Index of /gitlab-ce/yum/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

Data Agent 精选推荐:Aloudata Agent 企业级 AI 数据分析“专家”

Aloudata Agent 分析决策智能体——它以“智能问数、智能归因、报告生成”三大核心能力,为企业构建可信智能 Data Agent,助力企业实现 AI 驱动的数据洞察与敏捷决策,是企业数智化转型的优选方案。摘要 在数据量爆炸…

25.11.17随笔联考总结

考试 开考前正常早读,发题后还是先通读题面以决定考试策略。看了 T1,5 分钟会了,此时听说有人做过 T3 原题,不管。继续看 T2,T2 可能看了又有不到 10 分钟我又会了,比较开心,赶快去看 T3。T3 看到是计数,然后限…