P7368 [USACO05NOV]Asteroids G
题面
贝茜想在 \(N\times N\) 的网格中驾驶她的宇宙飞船。网格中有 \(K\) 个小行星。要使驾驶过程愉快,就必须把这些小行星全部消除。
贝茜有一个武器,可以以一个单位代价消除一行或一列的全部小行星。贝茜想问你,要把所有小行星都消除的最小代价是多少。
对于 \(100\%\) 的数据,\(1 \leq N \leq 500\),\(1 \leq K \leq N \times N\)。
思路
见到“最小代价”想到最小点覆盖。这道题就是最小点覆盖。竟然可以消除一行或者一列,那么对行建点 \(L(i)\),对列建 \(C(i)\),然后连边 \((L(i),C(i))\),不难发现这是一个二分图,直接匈牙利即可。
时间复杂度 \(O(n^2)\)。
代码
#include <iostream>
#include <vector>
using namespace std;
int n,m,t;
int mch[1005],vist[1005];
vector<int> g[1005];
bool dfs(int u,int tag){
if(vist[u]==tag) return false;
vist[u]=tag;
for(int i=0;i<g[u].size();i++){
int v=g[u][i];
if((mch[v]==0)||dfs(mch[v],tag)){
mch[v]=u;
return true;
}
}
return false;
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
g[u].push_back(v+n);
}
int ans=0;
for(int i=1;i<=2*n;i++){
if(dfs(i,i)) ans++;
}
cout<<ans<<endl;
return 0;
}
P7368 [USACO05NOV]Asteroids G的更多相关文章
- 2021record
2021-10-14 P2577 [ZJOI2004]午餐 2021-10-13 CF815C Karen and Supermarket(小小紫题,可笑可笑) P6748 『MdOI R3』Fall ...
- Storyboards Tutorial 03
这一节主要介绍segues,static table view cells 和 Add Player screen 以及 a game picker screen. Introducing Segue ...
- 文件图标SVG
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink ...
- POJ 3041 Asteroids
最小点覆盖数==最大匹配数 Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12678 Accepted: ...
- Asteroids(匈牙利算法入门)
Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16211 Accepted: 8819 Descri ...
- poj 3041 Asteroids(最小点覆盖)
http://poj.org/problem?id=3041 Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions ...
- poj 3041 Asteroids (最大匹配最小顶点覆盖——匈牙利模板题)
http://poj.org/problem?id=3041 Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions ...
- 1741: [Usaco2005 nov]Asteroids 穿越小行星群
1741: [Usaco2005 nov]Asteroids 穿越小行星群 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 231 Solved: 166 ...
- Asteroids!-裸的BFS
G - Asteroids! Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Subm ...
- POJ 3041.Asteroids 最小顶点覆盖
Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22905 Accepted: 12421 Descr ...
随机推荐
- 齐博x1万能数据统计之fun函数
使用 fun("count@info",'数据表名','用户uid') 可以统计指定任何数据表的记录条数 fun("count@info",'cms_conte ...
- 动词时态=>3.现在时态和过去时态构成详解
现在时态构成详解 一般现在时态 最容易构成的时态,直接加动词原形(字典当中显示的词条)就可以 第三人称"单数"的话需要加s 这是最容易出错的时态:容易将 现在的时间,和一般的状态: ...
- 快速创建软件安装包-ClickOnce
大家好,我是沙漠尽头的狼. .NET是免费,跨平台,开源,用于构建所有应用的开发人员平台. 今天介绍使用ClickOnce制作软件安装包,首先我们先了解什么是ClickOne. 1. 什么是Click ...
- AK/SK加密认证
AK/SK认证的实现 AK/SK概述 1.什么是AKSK ak/sk是一种身份认证方式,常用于系统间接口调用时的身份验证,其中ak为Access Key ID,sk为Secret Access Key ...
- P6492 STEP(线段树维护左右区间pushup)
题目链接 题目描述: 给定一个长度为\(~\)n\(~\)的字符序列\(~\)a,初始时序列中全部都是字符\(~\)L. 有\(~\)q\(~\)次修改,每次给定一个\(~\)x,做出如下变化: \( ...
- 我要涨知识 —— TypeScript 常见面试题(一)
1.ts 中的 any 和 unknown 有什么区别? unknown 和 any 的主要区别是 unknown 类型会更加严格:在对 unknown 类型的值执行大多数操作之前,我们必须进行某种形 ...
- 【Virt.Contest】CF1155(div.2)
CF 传送门 T1:Reverse a Substring 只有本身单调不减的字符串不能转换为字典序更小的字符串.否则肯定会出现 \(s_i>s_{i+1}\) 的情况. 所以只要从头到尾扫一遍 ...
- Vue3 企业级优雅实战 - 组件库框架 - 5 组件库通用工具包
该系列已更新文章: 分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率 开箱即用 yyg-cli 脚手架:快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 ...
- Hashcat使用指南
Hashcat使用指南 免责声明: 0×01 Hashcat破解linux shadow的密码-首先了解shadow文件到底是什么? 0×02 hashcat的使用 参数补充: -m 参数 -a 参数 ...
- 【OpenStack云平台】Packmaker 集群
个人名片: 因为云计算成为了监控工程师 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying Packmaker 集群 1.1 安装软件包 1.2 Corosync 基本配置 1.3 启 ...