拟阵深造 遗忘的记忆

【算法学习】拟阵交 详见2018集训队论文《浅谈拟阵的一些拓展及其应用》 我仅仅是读了粗略的读了论文(跳过了若干证明),感性的理解了拟阵和拟阵交 然后写了两道模板题。 可能有很多疏漏的地方,请各位大佬指正。 拟阵的定义 wiki 这里只有摘要 M=(S,I),IM = (S,I) , IM=(S,I),I是独立集的集合 满足遗传性:I的一切子集也是独立集 交换性:A,B是独立集,∣A∣<∣B∣|A| <... 阅读详情

拟阵

一个集合 PPP 是拟阵的充要条件为:

  1. ϕ∈P\phi \in Pϕ∈P。
  2. 对于任意的集合 A,BA,BA,B 满足 A∈P,B⊂AA \in P,B \subset AA∈P,B⊂A,一定有 B∈PB \in PB∈P。
  3. 对于任意的集合 A,BA,BA,B 满足 ∣A∣>∣B∣|A|>|B|∣A∣>∣B∣,则一定存在元素 x∈∁ABx \in \complement_A^Bx∈∁AB​ 满足 B⋃{x}∈PB \bigcup \{x \} \in PB⋃{x}∈P。

拟阵交

现有两拟阵 A,BA,BA,B,求拟阵的交。
设拟阵交为 CCC,初始为只有 ϕ∈C\phi \in Cϕ∈C。每次试图在 CCC 的基础上加入新的元素。设 DDD 为当前的 CCC 中元素的补集。对于 DDD 中的元素 xxx,若在 CCC 的基础上加入 xxx 后为 AAA 的子集,则源点向 xxx 连一条有向边,若为 BBB 的子集,则向汇点连一条边。若在 CCC 的基础的上删掉元素 xxx 后加入 yyy 为 AAA 的子集,则 xxx 向yyy 连一条边;若为 BBB 的子集,则 yyy 向 xxx 连一条边。最后跑一次从源点到汇点的最短路,对于路径上的点,若原来在 CCC 中则从 CCC 中删除,否则加入 CCC。直到不存在这样的路径就停止。

遗忘的记忆

给一张 nnn 个点 mmm 条边的无向图,每条边有一个颜色,共有 kkk 种颜色。现要删去若干边,第 iii 种颜色的边最多保留 cic_ici​ 条边,要求保留的边不能形成环,删掉的边最少,输出删掉的边。
1⩽n,m⩽5001 \leqslant n,m \leqslant 5001⩽n,m⩽500
1⩽ci,k⩽m1 \leqslant c_i,k \leqslant m1⩽ci​,k⩽m
时间限制1s,空间限制512MB。

生成树集合为拟阵,满足颜色限制的图的集合也为拟阵,求拟阵交即可。
时间复杂度 O(nm2log⁡2n)O(nm^2 \log_2n)O(nm2log2​n),空间复杂度 O(n+m2)O(n+m^2)O(n+m2)

#include<stdio.h>
#include<queue>
#include<vector>
using namespace std;
#define R register int
#define I inline
int c[501],ct[501],st[501],dis[503],pre[503],f[501],ed[501],col[501];
bool tag[501];
I int GetF(int x){
	if(f[x]==x){
		return x;
	}
	f[x]=GetF(f[x]);
	return f[x];
}
I void AddEdge(int e){
	ct[col[e]]++;
	if(GetF(st[e])!=GetF(ed[e])){
		f[f[st[e]]]=ed[e];
	}
}
I bool ExtendEdge(int&n,int&m,int&k,vector<int>&E){
	vector<int>F,G[503];
	for(R i=1;i<=n;i++){
		f[i]=i;
	}
	for(R i=1;i<=k;i++){
		ct[i]=0;
	}
	for(R i=1;i<=m;i++){
		tag[i]=false;
	}
	for(vector<int>::iterator T=E.begin();T!=E.end();T++){
		tag[*T]=true;
		AddEdge(*T);
	}
	for(int i=1;i<=m;i++){
		if(tag[i]==false){
			F.push_back(i);
			bool tem=true;
			if(GetF(st[i])!=GetF(ed[i])){
				G[m+1].push_back(i);
			}else{
				tem=false;
			}
			if(ct[col[i]]!=c[col[i]]){
				G[i].push_back(m+2);
			}else{
				tem=false;
			}
			if(tem==true){
				E.push_back(i);
				return true;
			}
		}
	}
	int s=E.size();
	for(R i=0;i!=s;i++){
		for(R j=1;j<=k;j++){
			ct[j]=0;
		}
		for(R j=1;j<=n;j++){
			f[j]=j;
		}
		for(R j=0;j!=i;j++){
			AddEdge(E[j]);
		}
		for(R j=i+1;j!=s;j++){
			AddEdge(E[j]);
		}
		for(R j=0;j!=m-s;j++){
			if(GetF(st[F[j]])!=GetF(ed[F[j]])){
				G[E[i]].push_back(F[j]);
			}
			if(ct[col[F[j]]]!=c[col[F[j]]]){
				G[F[j]].push_back(E[i]);
			}
		}
	}
	for(R i=m+2;i!=0;i--){
		dis[i]=-1;
	}
	dis[m+1]=0;
	queue<int>Q;
	Q.push(m+1);
	while(Q.empty()==false){
		int x=Q.front();
		Q.pop();
		for(vector<int>::iterator T=G[x].begin();T!=G[x].end();T++){
			if(dis[*T]==-1){
				pre[*T]=x;
				dis[*T]=dis[x]+1;
				Q.push(*T);
			}
		}
	}
	if(dis[m+2]==-1){
		return false;
	}
	vector<int>A;
	for(R i=pre[m+2];i!=m+1;i=pre[i]){
		tag[i]^=true;
	}
	for(int i=1;i<=m;i++){
		if(tag[i]==true){
			A.push_back(i);
		}
	}
	E=A;
	return true;
}
int main(){
	int n,m,k;
	scanf("%d%d%d",&n,&m,&k);
	for(R i=1;i<=k;i++){
		scanf("%d",c+i);
	}
	for(R i=1;i<=m;i++){
		scanf("%d%d%d",st+i,ed+i,col+i);
	}
	vector<int>E;
	E.push_back(1);
	while(true){
		if(ExtendEdge(n,m,k,E)==false){
			printf("%d\n",m-E.size());
			for(vector<int>::iterator T=E.begin();T!=E.end();T++){
				tag[*T]=true;
			}
			for(R i=1;i<=m;i++){
				if(tag[i]==false){
					printf("%d ",i);
				}
			}
			return 0;
		}
	}
}
拟阵及其应用(带有oj例题讲解) Matroid introduction 这篇文章主要是写拟阵及其应用。虽然拟阵的出现并不是因为贪心算法,但是它在贪心算法有着非常重要的地位。 一些概念 线性相关和线性无关: 在线性代数里,矢量空间的一组元素中,若没有矢量可用有限个其他矢量的线性组合所表示,则称为线性无关或线性独立 (linearly independent),反之称为线性相关(linearly depende... 阅读详情

相关推荐

拟阵交学习笔记

拟阵交学习笔记。

call_me_std 463

拟阵拟阵交

本文参考2018集训队论文《浅谈拟阵的一些拓展及其应用》 本文只谈如何用拟阵,不谈证明,证明参考《浅谈拟阵的一些拓展及其应用》。 定义 对于一个集合S{S}S,如果SSS的子集TTT满足某种特殊性质,则将TTT称为独立集,特别地,将空集成为独立集。 定义拟阵M=(S,I)M=(S,I)M=(S,I)表示,其中III为所有独立集的集合,并且III需要满足两个性质才能被称为拟阵: 遗传性:如果T∈IT\in IT∈I,则任意T{T}T的子集PPP都要满足P∈IP\in IP∈I。 交换性:如果A,B∈IA,B

Huah_2018的博客 881

拟阵交集算法:拟阵交集算法,即求两个拟阵的最大基数交集-matlab开发

使用 Krogdahl Graph 找出由 S1 和 S2 的列生成的拟阵之间的拟阵交集。 输入格式:I=Mat​​roidIntersection(E,S1,S2)。 E是基集,option=[1,2]对于S1是数值矩阵,S2是结构化矩阵,这是默认选项。 对于 option=[1,1],S1 和 S2 都是数值矩阵,您需要将所有“sprank”替换为“rank”。 I 是两个矩阵的交集。 该算法归功于 R. Chandrasekaran 博士的文档: http : //www.utdallas.edu/~kam093020/papers/matroid-intersection.pdf 。

拟阵

拟阵和拟阵交,拟阵并咕了 参考文献 2018论文 能看懂证明的地方抄抄证明,看不懂的地方就抄结论罢. 定义 拟阵和独立集 记 M=(S,I)M = (S, \mathcal{I})M=(S,I) 表示一个定义在一个有限集 SSS 上,独立集的集合是 I\mathcal{I}I 的拟阵,其中 I\mathcal{I}I 是由一些 SSS 的子集组成的集合. 拟阵MMM需要满足以下公理 遗传性:若I∈I,J⊆II\in \mathcal{I},J\subseteq II∈I,J⊆I,那么J∈IJ\in \m

00ffcc的博客 648

利用LQR反馈控制器在不同风况下模拟风力涡轮转速控制的MATLAB.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

基于jdk21、jdk17、jdk8 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户、开放平台解决方案,亦可作为普通项目的基础开发框架使用

基于jdk21、jdk17、jdk8 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户(SaaS架构)、开放平台解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现数据库隔离、字段隔离等租户隔离方案。

【计算机数学】拟阵理论和贪心算法浅析

前言对于一些NP-Hard问题,我们无法找到一个精确的求解方法。使用贪心思想采取贪心算法来求取近似解就成了常用的选择。很多算法名著对贪心算法都有很明确的讲解,这里对贪心算法摘取一下重点,然后我们要引出贪心算法背后的理论依据——拟阵理论。对于拟阵理论,可以查找一些入门典籍,如刘桂真,陈庆华著《拟阵》。贪心算法也称作贪婪算法(Greedy Algorithm),通过做一系列的选择来给出某一问题的最优解。

码农康康 1万+

Todo List

未学习的或者毫无印象的听说过的算法 代数 拉格朗日反演 单位根反演 斯特林反演 线性递推 BM算法 多项式快速插值 线性规划 Tutte 多项式 拟阵 几何 半平面交 圆的反演 三角剖分 Voronoi图 立体计算几何 数据结构 动态点分治 动态图 K-D Tree 线段树复杂度分析(类似于jry线段树) 莫队二次离线 仙人掌 带花树 支配树 ETT (?) TopTree (??) 析合树(???) 图论 预流推进 最小割树 平面图 最小树形图 代数相关的费用流模型 弦图与区间图 字符串 Lyndon Word 最小表示法

【学习笔记】拟阵

百年难遇的知识点,最好不要在上面浪费时间。

七代目鸽影 1965

高校技术转移办公室人员如何提升技术成果的推介效果和市场转化率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

两相交错并联BuckBoost变换器仿真模型(Simulink仿真实现)

内容概要:本文档系统整合了电力电子与新能源领域的Simulink仿真资源,聚焦于两相交错并联Buck-Boost变换器的双闭环PWM控制建模与仿真,同时涵盖多种典型拓扑结构,包括交错并联Boost、PFC功率因数校正、LLC谐振变换器、双向CLLC、DAB变换器、VIENNA整流器等。资源体系完整,包含仿真模型、设计报告、计算书、PPT说明文档及Matlab/Python代码,覆盖从基础建模到高级控制策略(如软开关技术、谐波抑制、状态估计、双闭环控制)的全流程。此外,还拓展至状态估计(卡尔曼滤波、粒子滤波)、智能优化算法、机器学习、信号处理、路径规划等多个交叉学科方向,构建了一个面向科研与工程应用的综合性技术平台。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等专业的硕士博士研究生、高校科研人员,以及从事新能源发电、智能电网、电动汽车、电力传动等领域技术研发的工程师。; 使用场景及目标:①开展电力电子变换器(如Buck-Boost、LLC、DAB、PFC等)的建模、控制与仿真研究;②支撑课程设计、学位论文、科研项目中的系统仿真与算法验证;③学习并复现高水平期刊(如EI)提出的先进控制策略,如基于KKT条件的最优控制、扩展移相调制、恒压恒流双环竞争控制等;④结合智能算法(如粒子群、秃鹰算法)进行微电网调度、储能配置、路径规划等多目标优化问题的研究与快速原型开发。; 阅读建议:建议依据提供的资源目录循序渐进地查阅资料,优先选取与自身研究方向高度契合的内容进行深入学习;应结合仿真模型与配套文档动手实践,调试参数并分析结果,充分利用百度网盘与公众号渠道获取完整资源,提升科研工作的系统性、规范性与创新性。

[Note] 拟阵

Reference 本来打算啃论文的结果被我鸽啦 论文的话可以参考 WC 2007 2015 2018 为了方便大家(我)看得懂而且我赶时间 我就简单一点讲吧。所以会很不严谨 有限拟阵Reference 一个有限拟阵 M=(S,I)\rm M=(S,I)M=(S,I) 满足: S\rm SS 是有限集; S\rm SS 的某些子集组成有限非空集 I\rm II ,且这些子集被称为独立集。 遗传...

最后一次修改 665

【基于Zernike矩的良性和恶性肿块的分类】应用于乳腺癌诊断中的快速相反权重学习规则(Matlab代码实现)

内容概要:本文详细介绍了基于Plecs软件构建的全桥LLC谐振变换器仿真模型,重点阐述了其在软开关技术条件下的建模方法与仿真分析过程。该模型能够精确模拟LLC谐振变换器在不同运行工况下的动态响应特性,涵盖开环与闭环控制策略的设计与实现,适用于研究变换器的效率优化、谐振参数匹配、系统稳定性及软开关性能等问题。相较于Simulink等传统仿真工具,Plecs在高频电力电子系统仿真中展现出更高的仿真速度与数值精度,尤其适合用于复杂电力电子拓扑的快速原型验证与优化设计。; 适合人群:具备扎实电力电子技术基础和仿真经验,从事高频功率变换器设计、新能源电源开发、电力电子系统研究的研发工程师及高校研究生。; 使用场景及目标:①深入理解全桥LLC谐振变换器的工作原理与软开关实现机制;②掌握在Plecs环境中搭建高精度、高效率电力电子系统仿真模型的方法;③开展变换器控制策略(如变频控制、闭环稳压)的仿真验证与参数优化;④为科研课题、学位论文或工业项目提供可靠的仿真平台与技术支持。; 阅读建议:建议结合相关电力电子教材与LLC变换器设计指南,深入掌握谐振参数计算与系统稳定性分析方法,并通过反复调试仿真模型,观察关键波形(如原边电流零点切换、副边整流波形),以全面理解软开关过程的物理本质与控制实现细节。

软考架构师·教材版|05 图论:Dijkstra 最短路径与 AOE 关键路径

拿着一张“路口和过路费”的图,一轮一轮算出起点到每个路口的最短时间;再拿“项目工序图”正推倒推两遍,说出最快几天完工、哪些工序一天都拖不得。Dijkstra 与关键路径两道常考计算题,方法对了五分钟拿分。

weixin_46316564的博客 205

产业园区运营负责人如何提升园区内技术成果与企业需求的精准对接效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【故障排查】telnet连接失败:端口23不可达的深度分析与解决方案

本文深度解析telnet连接失败时端口23不可达的常见原因与解决方案。从快速自查目标地址、端口到服务端排查,涵盖服务状态检查、防火墙配置及安全组设置,并提供进阶诊断工具与抓包分析方法。文章强调telnet协议的安全风险,建议在生产环境中改用SSH等加密协议进行远程管理。

weixin_28323057的博客 394

[C++高阶数据结构·图论下] 最短路径:为什么“挑最小的”一定正确?

本文系统对比最小生成树与最短路径的核心差异,聚焦三类最短路算法:Dijkstra(非负权、贪心确认)、Bellman-Ford(可负权、反复松弛)、Floyd(全源、分层中转)。核心区别在于:MST 关注“连通所有点”的最小代价(边数固定),而最短路关注“两点间路径最短”(边数可变)。关键反直觉点是:负权对 MST 无害,却使 Dijkstra 失效——因“绕远更近”破坏贪心前提。算法本质反映三种处理不确定性的策略:确认式(Dijkstra)、迭代修正(Bellman-Ford)、分层逼近(Floyd)。强

Tairitsu_青云 515

FPGA远程升级避坑实录:用STARTUPE2原语搞定Flash时钟,K7325T实测有效

本文深入解析了FPGA远程升级中的STARTUPE2原语应用,特别针对K7325T芯片的Flash时钟问题提供了实测有效的解决方案。通过详细的原语工作机制、Vivado工程实现步骤及调试技巧,帮助工程师规避常见陷阱,提升远程升级的可靠性和效率。

weixin_42558093的博客 141

数据结构之图论基础——从定义到常用术语

本文系统梳理图论核心知识点:从数据关系递进引出图的多对多特性,定义图为G=(V,E),强调顶点集非空;分类为有向/无向、有权/无权、连通/非连通;详解九大高频术语——完全图、稀疏/稠密图、权与网、邻接、度(含握手定理)、路径、子图、连通分量与生成树,并总结考研/面试必背公式与易错点,突出“边数计算”与“极大/极小”辨析,助力高效备考。

qq_34097230的博客 353

NVMe与PCIe的完美结合:高速存储背后的技术解析

本文深入解析了NVMe与PCIe技术如何完美结合,实现高速存储性能的飞跃。从机械硬盘到NVMe SSD的进化历程出发,详细介绍了PCIe总线的高带宽优势与NVMe协议的低延迟设计,以及两者协同工作带来的显著性能提升。通过实测数据对比,展示了NVMe SSD在消费级和企业级应用中的卓越表现,并提供了选购与优化建议。

weixin_29216353的博客 376

说一下Intel Fortran 编译器经典版ifort和新一代ifx

摘要:ifort是Intel开发的传统Fortran编译器,以稳定性和遗留代码兼容性著称,现已进入维护模式。ifx则是基于LLVM架构的新一代Fortran编译器,具有更好的性能优化、更快的编译速度,并支持最新Fortran标准和GPU加速。英特尔计划逐步用ifx取代ifort,前者将成为未来主力发展的产品线。两者的核心区别在于技术基础(传统vs.现代化LLVM)和功能支持(维护状态vs.持续更新)。

luohaitao的专栏 1347

2026-11-02 hetao1733837 的刷题记录

难道说,就是说,我在倒着考虑的时候……但是,有不完全正确……如果吃一坨的话,真的有可能吧……那并不能保证是一个连通块,只能保证是一个子树……可能几亿天前就指出了我的这个问题……即,我们需要选一些位置,同时,在整个域当中,还有不选的,组合数乘起来,就做完了……如果是暴力,肯定就是限制个数自己枚举,然后做完了……有时候说话不好听,但是,真的帮助我了……也可以看出来,他很纯粹……特别是现在穿的比较厚,不方便仰头……求一下连通块的个数,区别不是很大……具体的,我们之前的暴力……还是说,别浮躁吧,有点毛燥了……

hetao1733837的博客 240

Zemax操作16--激光谐振腔(含晶体)

谐振腔(含晶体)

lzy750750的博客 8314
上一篇: PKUSC 2021
下一篇: 牛客挑战赛48 F 小丑生产值
Defener
博客等级 码龄6年 8粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值