BZOJ 1191 [匈牙利算法]

Excel数据分析实例 Excel数据分析实例 Excel数据分析五步走: 明确目的——观察数据——数据清洗——数据分析——数据可视化 数据是从Kaggle上下载的,牛油果的案例 目的 数据分析都是为了企业业务做得更好,这次案例主要针对于牛油果的销售量进行分析。 数据 检查是否有缺失值、是否一致化、是否有脏数据 分析 1.不同区域不同季度的牛油果价格走势 从上图中可以看出,东北地区的价格一直较高,而中南地区一直较低 2.2015-2018四年不同城市的销售总和 3.四年间不同城市的销售排名(降序排序) 可视化 1.四年间销 阅读详情

1191: [HNOI2006]超级英雄Hero
Description
现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金。主持人问题准备了若干道题目,只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰。为了增加节目的趣味性并适当降低难度,主持人总提供给选手几个“锦囊妙计”,比如求助现场观众,或者去掉若干个错误答案(选择题)等等。 这里,我们把规则稍微改变一下。假设主持人总共有m道题,选手有n种不同的“锦囊妙计”。主持人规定,每道题都可以从两种“锦囊妙计”中选择一种,而每种“锦囊妙计”只能用一次。我们又假设一道题使用了它允许的锦囊妙计后,就一定能正确回答,顺利进入下一题。现在我来到了节目现场,可是我实在是太笨了,以至于一道题也不会做,每道题只好借助使用“锦囊妙计”来通过。如果我事先就知道了每道题能够使用哪两种“锦囊妙计”,那么你能告诉我怎样选择才能通过最多的题数吗?
Input
输入文件的一行是两个正整数n和m(0 < n <1001,0 < m < 1001)表示总共有n中“锦囊妙计”,编号为0~n-1,总共有m个问题。以下的m行,每行两个数,分别表示第m个问题可以使用的“锦囊妙计”的编号。注意,每种编号的“锦囊妙计”只能使用一次,同一个问题的两个“锦囊妙计”可能一样。
Output
第一行为最多能通过的题数p
Sample Input
5 6
3 2
2 0
0 3
0 4
3 2
3 2
Sample Output
4

建模很重要。
把每个锦囊和问题看成节点,得到一个二分图。
因为只有答对之前的题目才可以继续,要弄明白的是这个过程有什么用:

bool dfs(int x) {
  for(int i = 0; i < n; i++) {
    if (!used[i] && map[x][i]) {
      used[i] = 1;
      if (!match_to[i] || dfs(match_to[i])) {
        match_to[i] = x; return 1;
      }
    }
  }
  return 0;
}

其实的话就是对节点x进行匹配而已。
那么我么就想到了解法,就是按顺序,如果每道题都可以匹配到的话,就继续,否则就结束。
详见代码:

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#define N 1010
using namespace std;

int map[N][N], match_to[N], used[N];
int n, m, a, b, ans = 0;

inline char get(void) {
    static char buf[100000], *p1 = buf, *p2 = buf;
    if (p1 == p2) {
        p2 = (p1 = buf) + fread(buf, 1, 100000, stdin);
        if (p1 == p2) return EOF;
    }
    return *p1++;
}
inline void read(int &x) {
    x = 0; char c;
    for(c = get(); c < '0' || c > '9'; c = get());
    for(; c >= '0' && c <= '9'; x = x * 10 + c - '0', c = get());
}
bool dfs(int x) {
  for(int i = 0; i < n; i++) {
    if (!used[i] && map[x][i]) {
      used[i] = 1;
      if (!match_to[i] || dfs(match_to[i])) {
        match_to[i] = x; return 1;
      }
    }
  }
  return 0;
}

int main(void) {
  read(n); read(m);
  memset(map, 0, sizeof(map));
  for(int i = 1; i <= m; i++) {
    read(a); read(b);
    map[i][a] = map[i][b] = 1;
  }
  for(int i = 1; i <= m; i++) {
    memset(used, 0, sizeof(used));
    if (dfs(i)) {
      ans++;
    } else {
      break;
    }
  }
  cout << ans <<endl;
}
TC3XX - MCAL知识点(二十):CAN MCAL配置及代码实战(CAN/CANFD/extenen CAN) CAN驱动程序负责提供AUTOSAR指定的标准CAN通信服务。M_CAN单元是底层的CAN硬件单元,它由共享消息RAM(在AUTOSAR中称为硬件对象)的节点(在AUTOSAR中称为控制器)组成。CAN驱动提供以下服务:·初始化CAN控制器以控制CAN控制器的行为和状态·设置和修改CAN控制器的波特率配置·支持CAN和CAN FD帧的收发·在轮询和中断模式下,成功的帧传输通知,专用和FIFO消息的接收和总线事件通知·数据接收使用接收FIFO功能·假装网络模式处理·支持多读/写周期功能。 阅读详情

相关推荐

STM32 SYSTICK定时器及延时函数详解

STM32 SYSTICK及延时函数详解 SysTick定时器 SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心

w1050321758的博客 2366

[HNOI2006]超级英雄(二分+网络流)

[HNOI2006]超级英雄 题目描述 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金。主持人问题准备了若干道题目,只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰。为了增加节目的趣味性并适当降低难度,主持人总提供给选手几个“锦囊妙计”,比如求助现场观众,或者去掉若干个错误答案(选择题)等等。 这...

a6823202的博客 203

Linux -- 图形界面配置Samba;system-config-samba工具

图形界面配置Samba6.6.1 system-config-sambasystem-config-samba是Red Hat公司专门为Samba服务器管理编写的图形界面的管理工具,通过system-config-samba几乎可以完成对Samba服务器的所有配置,所以在只希望通过Samba服务器实现一些简单的资源共享时,system-config-samba是一个不错的选...

weixin_33695450的博客 2200

HNOI2006——超级英雄hero(二分图最大匹配)

1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1012  Solved: 480 [Submit][Status][Discuss] Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或

JIA_char 1103

ESP32-CAM与Thonny的完美搭配:从烧录到通信的完整流程

本文详细介绍了如何将ESP32-CAM与Thonny IDE完美结合,从固件烧录到通信测试的完整流程。通过硬件连接、MicroPython固件烧录、Thonny环境配置以及摄像头功能开发等步骤,帮助开发者快速搭建高效的物联网开发环境,实现图像采集与无线通信功能。

tomato的博客 1122

CVE-2025-25249漏洞深度解析:FortiOS认证绕过与实战缓解

远程代码执行(RCE)是网络安全中最危险的漏洞类型之一,其核心往往源于认证机制失效或内存安全缺陷。CVE-2025-25249正属于此类高危漏洞——它不依赖用户凭证,也不需要交互触发,而是通过超长HTTP头(如X-Forwarded-For)引发内存越界写入,直接绕过FortiOS和FortiSwitchManager的完整认证流程。该漏洞影响广泛、CVSS评分高达9.8,凸显了嵌入式设备在HTTP协议栈实现中的深层风险。在企业网络中,FortiGate等设备常作为边界守门人,一旦失陷将导致root级控制权

weixin_33694620的博客 524

作业8:(1)超级英雄Hero

[HNOI2006]超级英雄Hero

this_is_a_homework的博客 771

【ROS2】Arduino系列之机器人底盘实现

介绍ros中提供的一个已经封装了的模块: ros_arduino_bridge,该模块由下位机驱动和上位机控制两部分组成,通过该模块可以更为快捷、方便的实现自己的机器人平台

guilin 1483

【BZOJ 1191】[HNOI2006]超级英雄Hero(二分图匹配/枚举)

题面 题意: 一个有奖问答节目,有nnn个问题,mmm个锦囊。每道题你可以在某两个锦囊之间选择一个使该题通过。假设你一道题不会。在回答过程中如果错误则游戏结束。求最多通过几道题。 IDEA: 我们枚举回答的最后一个问题iii,每次从问题1−i1-i1−i匹配对应的锦囊。如果满足完美匹配则继续。否则输出答案。 code: #include&lt;bits/stdc++.h&gt; using nam...

duanghaha的博客 232

基于开源项目构建 CFS(网络靶场实战演练)平台

摘要:构建CFS网络靶场可使用多个开源组件组合,包括EVE-NG/GNS3或ContainerLab构建网络环境,Kasm提供工作空间,CALDERA+Atomic Red Team实现攻击模拟,DetectionLab建立防御环境,Malcolm/Arkime进行流量监控,CyRIS提供编排框架,Vulhub/DVWA创建漏洞靶标。关键在于通过API深度集成各组件,同时需注重安全隔离、资源规划及维护成本。建议开发统一管理平台,结合Ansible/Terraform实现自动化部署,打造定制化实战演练环境。(

深山技术宅的博客 1842

【5G】5G 核心网(5GC)基本架构

本文旨在科普5G核心网相关知识...

Learning makes me happy (0^◇^0) 4万+

BZOJ 1191 匈牙利算法

1191: [HNOI2006]超级英雄Hero Time Limit:10 SecMemory Limit:162 MBSubmit:6172Solved:2763[Submit][Status][Discuss] Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的 多少获得不同...

dianxue5904的博客 165

天猫精灵设备拆机及系统分析

我手头的这个天猫精灵型号为TG_X1,黑色天猫精灵AI助手,拆解没有多少难度,但需要注意连接线的问题。具体的拆机过程可以参见:http://www.geekifix.com/wp/archives/415.html注意一点就是,天猫精灵的主板的位置,位于音频按键的底部,也就是顶端,而拆解是从电源的位置从低到顶进行拆机;拆机后,看到主控板的信息如下:主控型号:联发科 MT8516MT8516支持四核...

LeeKwen的专栏 3万+

bzoj 1191 匈牙利算法

只需要做一遍匈牙利,只要有一个没法匹配上就break就行了 /************************************************************** Problem: 1191 User: BLADEVIL Language: Pascal Result: Accepted Time:12 ms ...

weixin_34186950的博客 97

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

BZOJ1191 超级英雄Hero (匈牙利算法)

直接跑匈牙利,注意到“只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰”,一旦无法满足就直接退出。 1 #include <cstdio> 2 #include <algorithm> 3 #include <cstring> 4 #define maxn 2008 5 #define maxm 10008 6 ...

aekijekzn484879763的博客 558

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

BZOJ1191 超级英雄Hero

目录 BZOJ1191 超级英雄Hero 题解 code BZOJ1191 超级英雄Hero 题目传送门 题解 裸的二分图匹配,直接跑匈牙利即可。 code #include <bits/stdc++.h> using namespace std; typede...

dieyi9889的博客 140

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

[bzoj1191]超级英雄hero<二分图匹配*匈牙利算法>

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1191 今天随便在bzoj找了一题做,题一读完就发现是个匈牙利算法的裸题,原本以为可以一次过的,结果WA了不下五次,深感羞愧,后来我改变了方法,没有用邻接链表,改用邻接矩阵,结果一下子就过了,这让我甚是懵逼,到现在都没搞明白我的邻接链表哪里错了 -------------PS:...

baixunjiu2536的博客 258

bzoj 1191 匈牙利算法 二分图匹配

很水的题。。。 用来复习二分图用的。。。。 不过还剩点问题没有解决,这个留到明天#include #include #include #include #include #define pb push_back #define MAX 100010 #define rep(x,y,z) for(int x=y;x<=z;x++) using namespace std; int n,m,m

wbysr 792

bzoj 1191: [HNOI2006]超级英雄Hero 并查集 || 匈牙利算法

1191: [HNOI2006]超级英雄Hero Time Limit:10 SecMemory Limit:162 MBSubmit:1804Solved:850[Submit][Status] Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金。主持人...

alex151194310的博客 118

BZOJ[1191][HNOI2006]超级英雄Hero 匈牙利算法

题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1191Description现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金。主持人问题准备了若干道题目,只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰。为了增加节目的趣味性并适当降低难度,主持人总提供给

谁能代表肯德基 528

bzoj1191[HNOI2006] 超级英雄Hero

题目链接:bzoj1191 题目大意: 总共有m道题,选手有n种不同的“锦囊妙计”。主持人规定,每道题都可以从两种“锦囊妙计”中选择一种,而每种“锦囊妙计”只能用一次。选手只有答对了题才能接着答题,否则直接被淘汰。问最多通过的题数。 题解: 匈牙利求二分图最大匹配 构图:题当公牛,锦囊当母牛。每道题都连上它能用的锦囊就好了 要看题啊看清题啊。没看清题就...

229

[BZOJ1191][HNOI2006][二分图匹配][匈牙利算法]超级英雄hero

[题目] 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金。主持人问题准备了若干道题目,只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰。为了增加节目的趣味性并适当降低难度,主持人总提供给选手几个“锦囊妙计”,比如求助现场观众,或者去掉若干个错误答案(选择题)等等。 这里,我们把规则稍微改变一下。假设主

gaotianyu1350的专栏 843

BZOJ 1191 [HNOI2006]超级英雄Hero:二分图匹配 匈牙利算法

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1191 题意:   有m道题,每答对一题才能接着回答下一个问题。   你一道题都不会,但是你有n个“锦囊妙计”(每个只能用一次)。   对于每道题,你只能用该题规定的两种锦囊中的一种,来解决这道题。   问你最多能解决多少道题。 题解:   二分图最大匹配。 ...

a1392136的博客 140

bzoj1191 [ HNOI2006 ] --匈牙利算法

这道题一看就是求二分图最大匹配,不过需要注意的是答案需要前面所有题目都能答对,因为这里WA了无数次...... #include<iostream> #include<cstdio> #include<cstring> using namespace std; int tot,a[3001][2],i,j,n,m,k,f[3001],x,...

76

bzoj 1191超级英雄Hero|匈牙利算法|水题

Description现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金。主持人问题准备了若干道题目,只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰。为了增加节目的趣味性并适当降低难度,主持人总提供给选手几个“锦囊妙计”,比如求助现场观众,或者去掉若干个错误答案(选择题)等等。 这里,我们把规则稍微改变一下。假

远方 845

BZOJ 1191 超级英雄hero(二分图匹配,匈牙利算法)

题目链接:BZOJ 1191 这道题就是裸的二分图匹配,跑匈牙利算法即可。我用的邻接矩阵写的,这道题的话用临街链表写空间和时间都应该更可观。 #include #include #include using namespace std; int N,M,tot=0; int map[1001][1001],vis[1001],belong[1001]; bool find(int x){

顺 647
上一篇: BZOJ 1012 [线段树]
下一篇: BZOJ 1079 [记忆化搜索]
Vectorxj
博客等级 码龄11年 35粉丝 231原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值