当前位置: 首页 > news >正文

匈牙利算法模板

P3386 【模板】二分图最大匹配 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

思路:最模板的一集.还未匹配则匹配,否则之前一个给现在这个让位置.

int n,m,e;
vector<int> vct[505];
int match[505];
bool vis[505];
bool mark[505][505];
bool dfs(int s){for(auto v:vct[s]){if(vis[v]) continue;vis[v]=1;if(!match[v]||dfs(match[v])){   女生没有伴侣,或者其伴侣可以选择其他女生match[v]=s;return 1;}}return 0;
}
void solve(){               匈牙利🇭🇺--求最大匹配 o(n*m)cin>>n>>m>>e;for(int i=1;i<=e;i++){int u,v; cin>>u>>v;if(!mark[u][v]){vct[u].emplace_back(v);    建单向边mark[u][v]=1;}}int ans=0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++) vis[j]=0;if(dfs(i)) ans++;}cout<<ans;
}

C-有大家喜欢的零食吗_河南萌新联赛2024第(一)场:河南农业大学 (nowcoder.com)

思路:纯模板.

int n;
vector<int> vct[505];
int match[505],vis[505];
bool dfs(int s){for(auto v:vct[s]){if(vis[v]) continue;vis[v]=1;if(!match[v]||dfs(match[v])){    如果女生没有伴侣,或者其伴侣可以选择其他女生match[v]=s;    糖果v被s孩子选了return 1;}}return 0;
}
有大家喜欢的零食吗
https://ac.nowcoder.com/acm/contest/86639/C
void solve(){               C   匈牙利🇭🇺--求最大匹配cin>>n;for(int i=1;i<=n;i++){int k; cin>>k;for(int j=1;j<=k;j++){      孩子选糖果int x; cin>>x;vct[i].emplace_back(x);}}int ans=0;for(int i=1;i<=n;i++){if(dfs(i)) ans++;for(int j=1;j<=n;j++) vis[j]=0; init}if(ans==n) cout<<"Yes";else cout<<"No"<<endl<<n-ans;
}

[ABC091C] 2D Plane 2N Points - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

思路:纯模板

int n;
pair<int,int> a[150];
pair<int,int> b[150];
vector<int> vct[105];
int match[105];
bool vis[105];
bool dfs(int s){for(auto v:vct[s]){if(vis[v]) continue;vis[v]=1;if(!match[v]||dfs(match[v])){     如果女生没有伴侣,或者其伴侣可以选择其他女生match[v]=s;return 1;}}return 0;
}
2D Plane 2N Points
https://www.luogu.com.cn/problem/AT_arc092_a
void solve(){  B--匈牙利cin>>n;for(int i=1;i<=n;i++) cin>>a[i].first>>a[i].second;for(int i=1;i<=n;i++) cin>>b[i].first>>b[i].second;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a[i].first<b[j].first&&a[i].second<b[j].second) vct[i].emplace_back(j);}}int ans=0;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++) vis[j]=0;if(dfs(i)) ans++;}cout<<ans;
}

http://www.lryc.cn/news/451259.html

相关文章:

  • ubuntu 安装harbor
  • Python/大数据/机器识别毕业设计选题题目推荐
  • 基于Python的人工智能应用案例系列(17):LSTM正弦波预测
  • Python空间地表联动贝叶斯地震风险计算模型
  • 虚幻引擎-设置UI自适应屏幕大小
  • C++继承的三种方式[ACCESS]
  • idea 同一个项目不同模块如何设置不同的jdk版本
  • 1-仙灵之谜(区块链游戏详情介绍)
  • 基于51单片机的温湿度上下限监测预警proteus仿真
  • 考核总结.
  • 后端学习路线
  • 车辆重识别(注意力 U-Net:学习在哪些区域寻找胰腺)论文阅读2024/10/01
  • 【区别】git restore --staged <文件> 和 git reset HEAD <文件> 都可以用于取消已暂存的文件
  • void类型
  • 10/1 力扣 49.字母异位词分组
  • ✨机器学习笔记(六)—— ReLU、多分类问题、Softmax、Adam、反向传播
  • Xshell7下载及服务器连接
  • SQL Server—的数据类型
  • WaterCloud:一套基于.NET 8.0 + LayUI的快速开发框架,完全开源免费!
  • 数据结构-LRU缓存(C语言实现)
  • javacv FFmpegFrameGrabber 阻塞重连解决方法汇总
  • 自然语言处理问答系统技术
  • 交换机和路由器的区别
  • JavaScript Array(数组)
  • 示例说明:elasticsearch实战应用
  • 暴力匹配算法和 KMP 算法的优缺点分别是什么?
  • web笔记
  • 【网络安全】-访问控制-burp(1~6)
  • iOS 项目中的多主题颜色设计与实现
  • Android Camera2 与 Camera API技术探究和RAW数据采集