题解 P6268 【[SHOI2002]舞会】

news/2024/11/17 5:34:42/

题目链接

某学校要召开一个舞会。已知学校所有 nn 名学生中,有些学生曾经互相跳过舞。当然跳过舞的学生一定是一个男生和一个女生。在这个舞会上,要求被邀请的学生中的任何一对男生和女生互相都不能跳过舞。求这个舞会最多能邀请多少个学生参加。

这道题就是二分图的模板,答案 = = = 所有点数 − - 二分图的最大匹配。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
template<typename T>inline void read(T &FF){T RR=1;FF=0;char CH=getchar();for(;!isdigit(CH);CH=getchar())if(CH=='-')RR=-1;for(;isdigit(CH);CH=getchar())FF=(FF<<1)+(FF<<3)+(CH^48);FF*=RR;
}
template<typename T>void write(T x){if(x<0)putchar('-'),x*=-1;if(x>9)write(x/10);putchar(x%10+48);
}
const int MAXN=10010;
vector<int>V[MAXN];
int n,m,vis[MAXN],h[MAXN],ans,x,y;
bool dfs(int u){for(auto v:V[u]){if(vis[v])continue;vis[v]=1;if(h[v]==-1||dfs(h[v])){h[v]=u;h[u]=v;return true;}}return false;
}
int main(){memset(h,-1,sizeof(h));//编号从0开始read(n);read(m);while(m--){read(x);read(y);V[x].push_back(y);}for(int i=0;i<n;i++){memset(vis,0,sizeof(vis));if(dfs(i))ans++;}write(n-ans);return 0;
}

http://www.ppmy.cn/news/177075.html

相关文章

MTK6268-FAT

1. MBR(Master Boot Record) 高亮前的446个字节为MBR引导代码, 之后为DPT(Disk Patition Table)占64个字节, 再之后两位(55 AA(101010110101010))位结束符.(第1扇区结束) DPT结构: 表1 分区表第1字段(第一分区) 字节位移 字段长度 值 字段名和定义 0x01BE BYTE 0x80 …

P6268 [SHOI2002]舞会 题解

博客园同步 原题链接 前置知识&#xff1a; 匈牙利算法 简要题意&#xff1a; 求图的二分图最大独立集。 二分图最大独立集指&#xff1a;最大的一个点集使得每两个点都不在同一边上的这个点集的大小。 你会发现&#xff0c;这和 二分图最大匹配 似乎是有联系的。 给出…

洛谷 P6268 [SHOI2002]舞会(二分图最大独立集)

[SHOI2002]舞会 题目描述 某学校要召开一个舞会。已知学校所有 n n n 名学生中&#xff0c;有些学生曾经互相跳过舞。当然跳过舞的学生一定是一个男生和一个女生。在这个舞会上&#xff0c;要求被邀请的学生中的任何一对男生和女生互相都不能跳过舞。求这个舞会最多能邀请多…

[HDU6268]Master of Subgraph

[HDU6268]Master of Subgraph 题目大意&#xff1a; 一棵\(n(n\le3000)\)个结点的树&#xff0c;每个结点的权值为\(w_i\)。给定\(m(m\le10^5)\)&#xff0c;对于任意\(i\in[1,m]\)&#xff0c;问书中是否有一个连通子图的权值和等于\(i\)。 思路&#xff1a; 重心剖分。考虑处…

【力扣周赛#324】6266. 使用质因数之和替换后可以取到的最小值+6267. 添加边使所有节点度数都为偶数+6268. 查询树中环的长度

目录 6265. 统计相似字符串对的数目 - ac 6266. 使用质因数之和替换后可以取到的最小值 分解质因数 1、tle代码 2、优化ac代码 6267. 添加边使所有节点度数都为偶数 - 建图分类讨论 关于建图 6268. 查询树中环的长度 - LCA最近公共祖先 6265. 统计相似字符串对的数目…

LOJ6268拆分数

/*相当于每种物品都有无限个的背包毕竟考场上写exp是个比较危险的行为对数据进行根号分治是个比较好的方法对于小于等于根号的部分暴力背包转移 对于大于根号的 最多只会拿根号个 dp一下就好了*/ #include<cstdio> #include<algorithm> #include<cstring> #i…

UVALive - 6268 Cycling 贪心

UVALive - 6268 Cycling 题意&#xff1a;从一端走到另一端&#xff0c;有T个红绿灯&#xff0c;告诉你红绿灯的持续时间&#xff0c;求最短的到达终点的时间。x 思路&#xff1a; 转载于:https://www.cnblogs.com/macinchang/p/4753611.html

LOJ #6268. 分拆数

可以先将问题建模为 &#xff1a; 物品大小为1~inf 且每件物品数量无限 的背包选体积为1~n的方案数。 显然物品体积只有1~n有用&#xff0c;我们不妨把 体积1~sqrt(n) 的物品先暴力插入到背包中&#xff0c;设这一部分最后 体积i的方案数是 A[i] 。 考虑体积>sqrt(n)的物品怎…