poj3041 Asteroids 最小点覆盖 二分图

SAP Gateway 中事务码 /IWFND/MAINT_SERVICE 的用法介绍 本文系统梳理了SAP Gateway中/IWFND/MAINT_SERVICE事务码的核心功能与运维实践。作为OData服务管理中樞,它支持服务注册激活、ICF节点配置、系统别名绑定、批量处理等关键操作。文章详解了服务目录、ICF节点、系统别名的配置要点,提供了批量激活、缓存清理、性能监控等实用技巧,并针对常见陷阱(如传输配置、删除残留)给出解决方案。通过制造业批量激活、零售业OAuth集成等案例,展示了事务码在企业级应用中的实际价值,为SAP Gateway运维提供了一套完整的治理清单。 阅读详情

Asteroids
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 13927 Accepted: 7566

Description

Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <= 500). The grid contains K asteroids (1 <= K <= 10,000), which are conveniently located at the lattice points of the grid.

Fortunately, Bessie has a powerful weapon that can vaporize all the asteroids in any given row or column of the grid with a single shot.This weapon is quite expensive, so she wishes to use it sparingly.Given the location of all the asteroids in the field, find the minimum number of shots Bessie needs to fire to eliminate all of the asteroids.

Input

* Line 1: Two integers N and K, separated by a single space.
* Lines 2..K+1: Each line contains two space-separated integers R and C (1 <= R, C <= N) denoting the row and column coordinates of an asteroid, respectively.

Output

* Line 1: The integer representing the minimum number of times Bessie must shoot.

Sample Input

3 4
1 1
1 3
2 2
3 2

Sample Output

2

Hint

INPUT DETAILS:
The following diagram represents the data, where "X" is an asteroid and "." is empty space:
X.X
.X.
.X.


OUTPUT DETAILS:
Bessie may fire across row 1 to destroy the asteroids at (1,1) and (1,3), and then she may fire down column 2 to destroy the asteroids at (2,2) and (3,2).


  把每行和列分别看成两组,交点看成边,那么每个边至少有一个点被覆盖,这道题就是求最小点覆盖。

  最小点覆盖:用最少的点覆盖所有的边(每条边至少一个顶点被覆盖),最小点覆盖=边最大匹配。充分性:M个点是足够的,它们覆盖最大匹配的所有边后,若还有边没被覆盖,则可以得到更大匹配,矛盾。必要性:最大匹配两两无公共点,至少要M个点才能把这些边覆盖。

  最小边覆盖:最小路径覆盖就是找出最小的路径条数,使之成为P的一个路径覆盖。最小边覆盖=点数-最大匹配数。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<cstdlib>
#define INF 0x3f3f3f3f
#define MAXN 510
#define MAXM 15
#define MAXNODE 30000
#define pii pair<int,int>
using namespace std;
int N,K,vis[MAXN],match[MAXN],w[MAXN][MAXN];
int augment_path(int u){
    for(int i=1;i<=N;i++) if(w[u][i]&&!vis[i]){
        vis[i]=1;
        if(!match[i]||augment_path(match[i])){
            match[i]=u;
            return 1;
        }
    }
    return 0;
}
int hungary(){
    memset(match,0,sizeof(match));
    int ret=0;
    for(int i=1;i<=N;i++){
        memset(vis,0,sizeof(vis));
        if(augment_path(i)) ret++;
    }
    return ret;
}
int main(){
    while(scanf("%d%d",&N,&K)!=EOF){
        memset(w,0,sizeof(w));
        int u,v;
        for(int i=0;i<K;i++){
            scanf("%d%d",&u,&v);
            w[u][v]=1;
        }
        printf("%d\n",hungary());
    }
    return 0;
}




【2025年阿里云暑期实习(算法岗)-4月24日-第一题(100分)- 小红听歌】(题目+思路+Java&C++&Python解析+在线测试) 小红正在听歌,屏幕上同时展示着歌词和对应的播放进度条。s1t101ti​0iti​1i小红每次可以操作快进或回退一个歌词(即将播放指针向右或向左移动一个位置),数据初始时和操作过程均保证已经播放的歌词是s的一个前缀(可为空串)。她的目标是:以尽可能少的操作次数,使得字符串s中未播放状态的歌词是"幸运串"。请你计算,为了达到该目标,至少需要多少次操作?(数据保证可以在有限次内完成操作目标)【幸运串】每种字母出现的次数为指定的次数,可为空串,具体可查看输入描述。 阅读详情

相关推荐

【VSCode】【Clangd】从零构建:基于LLVM/Clangd+MINGW+CMake的Windows高性能C/C++开发环境实战

本文详细介绍了如何在Windows平台搭建基于LLVM/Clangd+MINGW+CMake的高性能C/C++开发环境。通过VSCode配置Clangd语言服务器,结合MINGW提供的GCC工具链和CMake的跨平台构建能力,实现轻量级、高效率的开发体验。文章包含从环境准备到实战配置的完整指南,特别适合追求开发效率和跨平台兼容性的开发者。

weixin_28839629的博客 310

POJ 3041 Asteroids(二分图最小点覆盖, 转化)

二分图最小点覆盖 题目意思: 有 n * n 的矩阵, 有k个小行星, 有位美女开飞船,开一枪可以消灭一行或者一列的 小行星。问,最少开多少枪, 可以消灭所以的小行星。 本题要点: 1、左部节点: n个横坐标 右部节点:n个纵坐标 n <= 500, 用邻接矩阵来存图 2、 最小点覆盖数定义: 就是对于一个图,选取最少数量的点S,使得对于所有的边,都至少有一端点是S中的点。 该题目中,小行星的坐标 (x, y) 转化为 二分图 左部的点 x 连上 右部的点y的一条边。 求出最小点覆盖数 的 s个点后,

qq_38232157的博客 241

电源工程师必看:平均电流模式BUCK双环控制详解(从传递函数到Psim仿真)

本文详细解析了平均电流模式BUCK变换器的双环控制策略,从传递函数推导到Psim仿真实现。针对电源工程师关注的环路设计和稳定性问题,深入比较了电压模式、峰值电流模式和平均电流模式的优缺点,并提供了12V/3A BUCK变换器的完整设计案例,帮助工程师掌握平均电流控制这一中高功率应用的首选方案。

weixin_42696271的博客 394

Asteroids POJ - 3041(最小覆盖点 ,二分图匹配)

Asteroids POJ - 3041 题意:n*n网格,一枪可以干掉一行或一列行星,问最少开几枪。 分析:即选几个边点或列点开枪,求最小的点的个数-->即最小覆盖点,在二分图中等于最大匹配,因为每个行星都有一个行坐标和列坐标即求行坐标和列坐标的最大匹配。 代码: #include<cstdio> #include<iostream> #include&...

fighting_yifeng的博客 212

ATE测试基础——直流参数测试

芯片测试在发展过程中诞生了许多术语,初次接触的人大部分都会被绕晕。因此为方便广大读者理解,在开始介绍测试项之前,需要对测试领域的名词进行解释。还有部分较为抽象的内容,需要略作展开。DUT——Device Under Test,正在被测试的器件Pin——器件引脚,信号引脚分为输入,输出,三态和双向四类,负责与外界进行信息交互;电源引脚分为电源和地两类,结构与信号引脚不同,负责给器件内部运行和外部输出提供电平。输入:在外部信号和器件内部逻辑之间起缓冲作用的信号输入通道;

你骄傲地飞远的博客 1万+

LPDDR6来了!到底比LPDDR5/5X强在哪?从速度到总线,技术细节一次说清!

LPDDR6不仅仅是速度快点、位宽大点那么简单,它是一次架构级的革新,从引脚、总线、时钟管理到Burst协议全部升级。🎯我们正在迈入一个“AI优先”的时代,内存架构也必须跟上。对于做芯片、做整机、做系统的你,理解LPDDR6的技术变化,提前规划测试方案,是现在就该启动的动作!

weixin_43199439的博客 1280

POJ3041--Asteroids(二分图,最小覆盖点)

Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <= 500). The grid contains K asteroids (1 <= K <= 10,000), which are conven

crystaljy的博客 395

在鸿蒙中使用AVPlayer完成视频的播放【坚果派】

播放的全流程包含:创建AVPlayer,设置播放资源和窗口,设置播放参数(音量/倍速/缩放模式),播放控制(播放/暂停/跳转/停止),重置,销毁资源。5.准备播放:调用prepare(),AVPlayer进入prepared状态,此时可以获取duration,设置缩放模式、音量等。8.退出播放:调用release()销毁实例,AVPlayer进入released状态,退出播放。6.视频播控:播放play(),暂停pause(),跳转seek(),停止stop() 等操作。今天我们来看一下视频如何正常播放。

坚果的博客 4054

poj 3041 Asteroids 二分图最小点覆盖

http://poj.org/problem?id=3041 首先这个题目求的是二分图的最小点覆盖,二分图的最小点覆盖等于二分图的最大匹配。 因为行与行没关系,列于列也没关系,但行和列之间有关系; 所以这个题目转换为行列之间的二分图的最大匹配 //~~~c++ #include<iostream> #include<cstdio> #include<vector&gt...

accepted_accepted的博客 213

OceanSim: 基于Isaac Sim GPU 加速水下机器人感知仿真框架

OceanSim 采用先进的基于物理的渲染技术,对水下视觉和声学传感器进行精确建模。与其他模拟引擎相比,OceanSim 的渲染速度要快得多。作为 NVIDIA Issac Sim 的扩展,OceanSim 采用了多功能设计。通过融入快速发展的 NVIDIA Omniverse 生态系统,我们的模拟器自然而然地在机器人学习和水下机器人技术之间架起了一座桥梁,从而促进了水下应用中体现型人工智能技术的开发和部署。OceanSim 将以开放源码的方式提供,使研究界能够以合作的模式作出贡献。

机器人控制与仿真应用 2048

WS2812和homeassistant握手

本文学习了WS2812和homeassistant握手,后期会分享更多有趣物联网的操作从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。...

vor234的博客 811

POJ - 3041 Asteroids 二分图最小点覆盖

题目链接 二分图一个很重要的定理:看了很多大神的博客表示看不懂为什么,以后再看 最小点覆盖=最大匹配 最小点覆盖就是在二分图里边,选择一个点,将所有与该点相链接的边删去,问最小找多少个点能够把所有的边删去。 本题的思路:将每一个点的坐标(x,y)转化为一条边左侧的点x到右侧的一个点y,x,y之间存在一条边。 那么你不管删除那一个点,将该点对应的边全部删去,就对应上边最小点的定义,与此同时...

swust5120171204的博客 199

ICC2: pin shape不在track上引起的drc如何解决?

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 433

POJ 3041 Asteroids 二分图最小点覆盖

给N和K,N代表N*N的矩阵,K代表接下来有K个格子,每个格子上有一个小行星, 他的武器每次可以干掉某一行或者某一列的所有小行星,然后问最少使用 多少次该武器 最小点覆盖:就是对于一个图,选取最少数量的点S,使得对于所有的边,都至少有一端点是S中的点 König定理:二分图中的最小覆盖点数==最大匹配数 这个题建图,每行对应为左边的每个点,每列对应为右边的点,然后如果(i,

一蓑烟雨任平生 446

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

POJ3041 Asteroids【二分图最小点覆盖】

题目大意: 有一个N*N的矩阵,有些格子上有障碍物(坐标为(x,y) ),在消除这些障碍物的时候,可以一次性消除 该障碍物同一行所有的障碍物,或是一次性消除该障碍物同一列所有的障碍物。只能选择清理该行或是 清理该列。问:最小进行多少次消除,就可以清理所有的障碍物。 思路: 可以将每一行当做一个点,这样总共有N个点,作为二分图的一边。将每一列当做一个点,这样又有N 个点,作为二分图的另一边。将有障碍物的行点和列点连接起来,每次只能选择行或是列,需要清除所 有的障碍物。所以不能存在一条边两边的点都没有被选中的

程序员充电站(itcharge) 1115

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

poj3041 Asteroids 最小点覆盖 二分图匹配

题意: 一个矩阵,其中一些点上有小行星。 一次可以摧毁1行或者1列的全部小行星,问最少几次可以摧毁所有小行星。 思路: 如果在(i, j)这个点上有小行星,则连边i->j。 i与j只要选一个,这条边代表的小行星就会被摧毁。 可见,本题答案就是最小点覆盖,即选择最少的点,使每条边都至少有一个端点被选中。 二分图中最小点覆盖=最大匹配 代码(736K,16MS): #

Shion的专栏 612

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

POJ - 3041 Asteroids 二分图 最小点覆盖 最大匹配

Training 7 - F题 Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <= 500). The grid contains K asteroids (1 <= K <= 10,000), w...

xukeke12138的博客 225

POJ 3041 Asteroids(二分图 && 匈牙利算法 && 最小点覆盖)

嗯... 题目链接:http://poj.org/problem?id=3041 这道题的思想比较奇特: 把x坐标、y坐标分别看成是二分图两边的点,如果(x,y)上有行星,则将(x,y)之间连一条边,而我们要做的就是要找尽量少的点把所有的边覆盖,即为最小点覆盖问题,根据König定理:最小覆盖点数=最大匹配数,所以就可以用匈牙利算法求最大匹配了。 AC代码: ...

weixin_30871905的博客 175

POJ 3041 Asteroids 二分图 最小点覆盖

题意:在一个N×N的方格图中,有K个敌人。

leodestiny 545

poj 3041 Asteroids 二分图的最大匹配==最小覆盖点。

题目的意思是在一个网格中有若干个点,每一次可以一下子清楚一行或者一列,问多少次可以讲网格中的点全部清除。    分析:将行做表看作一个集合的点,列坐标看作一个集合的点,每个点就连接两个集合的边,求出最大匹配就是所要的答案。。。 题目: Asteroids

ACM梦。。。。 2275

poj3041 Asteroids 最小点覆盖 二分图 匈牙利算法BFS

POJ 3041 大致题意: 题意比较好理解,在一个nxn的矩阵中,有几个点,你可以任意选择一个点,然后将它所在行后者所在列的所有点都清空。问你最少选几个点,才能将所有点清空掉? 大致思路: 将x的值和y的值进行划分,再根据点的坐标进行连接,形成一个二分图。那么这道题的本质就是,寻求最小的一个点集合,使得所有的边都与这个集合的点有关系。 最小点覆盖问题~~~根据konig定理:最小点覆盖

zyy.cpp 的博客 339

POJ训练计划3041_Asteroids(二分图/最小点覆盖=最大匹配)

解题报告 题意: 给出NxN的矩阵,有M个点是障碍 每次只能删除一行或者一列,最少删除多少次才能清除障碍 思路: 把行和列看作两个集合结点,把障碍看作集合结点的连线,这样就转化成求用最少的点来消灭边,也就是最小点覆盖。 在二分图中:(n个结点,且没有孤立的点) 最小点覆盖=最大匹配 最大点独立=结点数-最大匹配 #include #inclu

_nplus 1575

POJ - 3041 Asteroids 二分图 最小点覆盖

题目大意:在一个N * N的网格中,有M个障碍物,现在你有一把武器,这个武器可以消除任意一行或者一列的障碍物,现在要求将所有障碍物消完,问至少使用这把武器多少次解题思路:想了老半天怎么解决行和列的问题。。。怎么表示两个点集 最后突然想到,既然不知道怎么处理行列,就将行列分别分成两个点集吧,点就代表行和列之间的关系,就这样交了一发,A了。 其实,这确实是,行列之间的连线(点)只要能用某些点表示就可

静静地码 694

POJ 3041 Asteroids(二分图最大匹配-最小点覆盖)

poj 3041 题目大意 在N*N的0和1组成的格子,一次操作可以将一行或一列的1全部变成0,问至少要进行多少次操作才能将所有的1全部变成0.分析 这道题是一道比较基础的二分图匹配问题,但也需要一点思维。考虑每一个为1的格子,因为它是一定会被变成0的所以它所在的行或列至少有一个会进行一次操作比如1的坐标为(1,2)、(2,1)、(2,2)、(3,3) 也就是每条边至少有一个端点会被选择(

AIDreamer 488

POJ - 3041 Asteroids(最小点覆盖-二分图最大匹配)

题目链接:点击查看 题目分析:给出一个n*n的矩阵,其中有m个敌人,每一次操作可以清除某一列或某一行中的所有敌人,问若想清除所有敌人,至少需要多少次操作 题目分析:第一次见这种题,就是最小覆盖是要用最大匹配来做的,还是匈牙利的板子题,只不过需要证明,但我不会。。 插眼:最小覆盖证明 那么这个题目大概就是将每一行和每一列分为两个子集,尽可能的让每一行和每一列两两匹配(因为最差在对角线用n次操...

Falcon的博客 482

POJ 3041Asteroids 【二分图】【最小点覆盖】

Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25922   Accepted: 14008 Description Bessie wants to navigate her spaceship through a dangerous asteroid field i...

Head_Hard的博客 216
上一篇: uva11889 - Benefit 数论
下一篇: hdu2438 Turn the corner 几何 三分法
小小小小葱
博客等级 码龄14年 22粉丝 266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值