[bzoj1741]穿越小行星群
2024-09-02 06:05:15
将每一行/每一列作为一个点,对于一个障碍(x,y),要么第x行和第y列的状态(是否攻击)只需要有一个就可以了,将第x行和第y列连边,就是二分图的最小点覆盖=最大匹配数。
1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 1005
4 struct ji{
5 int nex,to;
6 }edge[N*20];
7 int E,n,m,x,y,ans,head[N],flag[N],vis[N];
8 void add(int x,int y){
9 edge[E].nex=head[x];
10 edge[E].to=y;
11 head[x]=E++;
12 }
13 int dfs(int k){
14 if (vis[k])return 0;
15 vis[k]=1;
16 for(int i=head[k];i!=-1;i=edge[i].nex){
17 int v=edge[i].to;
18 if ((!flag[v])||(dfs(flag[v]))){
19 flag[v]=k;
20 flag[k]=v;
21 return 1;
22 }
23 }
24 return 0;
25 }
26 int main(){
27 scanf("%d%d",&n,&m);
28 memset(head,-1,sizeof(head));
29 for(int i=1;i<=m;i++){
30 scanf("%d%d",&x,&y);
31 add(x,y+n);
32 add(y+n,x);
33 }
34 for(int i=1;i<=n;i++){
35 memset(vis,0,sizeof(vis));
36 if (!flag[i])ans+=dfs(i);
37 }
38 printf("%d",ans);
39 }
最新文章
- andriod GridView
- 一些比较实用的javascript方法收集,留着有用
- Linux根文件系统的制作
- Oracle用户system解锁
- Altium Designer导出部分元件过滤不焊接的元件【worldsing笔记】
- Rouh set 入门知识1(基础定义篇)
- cocos2d-x 获取当前播放第几帧最高效的方法
- C# IIS7.0+ Web.Config 配置Session过期时间
- js通用方法检測浏览器是否已安装指定插件(IE与非IE通用)
- jQuery中有关mouse的事件--mousedown/up/enter/leave/over/out----2017-05-10
- Html 内容
- Android逆向学习资料
- ElasticSearch 2 (31) - 信息聚合系列之时间处理
- 移动端H5适配方法(盒子+图片+文字)
- 高效的数据压缩编码方式 Protobuf
- Oracle 10g 数据库的备份和还原
- 封装与继承(PHP学习)
- .net core i上 K8S(六).netcore程序的service网络代理模式
- Kattis - yoda 【字符串】
- 理解 virbr0
热门文章
- CF536D Tavas in Kansas(博弈论+dp)
- SpringBoot打包到docker(idea+传统方式)
- k8s replicaset controller分析(1)-初始化与启动分析
- 零基础入门C语言超详细的字符串详解
- ASP.NET Core 学习笔记 第四篇 ASP.NET Core 中的配置
- 反转单词顺序列 牛客网 剑指Offer
- Codeforces Round #741 (Div. 2)部分题题解
- Django settings.py设置 DEBUG=False后静态文件无法加载解决
- 2万字|30张图带你领略glibc内存管理精髓(因为OOM导致了上千万损失)
- 五(一)、spring 声明式事务注解配置