[SCOI 2010] 连续攻击游戏
[题目链接]
https://www.luogu.org/problemnew/show/P1640
[算法]
二分图匹配
实现时需要常数优化和特判
[代码]
//code by byf and lmj
#include <bits/stdc++.h>
#define MAXN 2000005
using namespace std;
int n,tot=,match[MAXN],head[MAXN];
bool visited[MAXN];
struct edge
{
int to,nxt;
} e[MAXN << ];
template <typename T> inline void read(T &x)
{
int f = ; x = ;
char c = getchar();
for (; !isdigit(c); c = getchar())
{
if (c == '-') f = -f;
}
for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
x *= f;
}
inline void addedge(int u,int v)
{
tot++;
e[tot] = (edge){v,head[u]};
head[u] = tot;
}
inline bool hungary(int u)
{
int v;
visited[u] = true;
for (register int i = head[u]; i; i = e[i].nxt)
{
v = e[i].to;
if (!visited[v])
{
visited[v] = true;
if (!match[v] || hungary(match[v]))
{
match[v] = u;
return true;
}
}
}
return false;
}
int main() {
read(n);
for (register int i = ; i <= n; ++i)
{
int a,b;
read(a); read(b);
addedge(a,i+n); addedge(b,i+n);
}
if (n <= 5E4)
{
for (register int i = ; i <= n; ++i)
{
memset(visited,false,sizeof(visited));
if (!hungary(i))
{
cout << i - << endl;
return ;
}
}
cout << n << endl;
return ;
}
for (register int i = ; i <= ; ++i)
{
for (register int j = ; j <= ; ++j) visited[j] = false;
if (!hungary(i))
{
cout << i - << endl;
return ;
}
}
cout << n << endl;
return ;
}
[SCOI 2010] 连续攻击游戏的更多相关文章
- SCOI 2010 连续攻击游戏(贪心,图论)
SCOI 2010 连续攻击游戏 solution 直接就硬刚 我愿称贪心为暴力 因为题目中要求一定从小到大贪心,那么当前点的下标有能够选取的较大点,那么它一定可以和前面的一个较小点连接,所以可以直接 ...
- 【二分图】洛谷P1640连续攻击游戏
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- 洛谷 P1640 [SCOI2010]连续攻击游戏 解题报告
P1640 [SCOI2010]连续攻击游戏 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备 ...
- 洛谷P1640 [SCOI2010]连续攻击游戏(二分图)
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- [SCOI2010]连续攻击游戏 BZOJ1854 二分图匹配
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- 洛谷 P1640 BZOJ 1854 [SCOI2010]连续攻击游戏
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- 洛谷—— P1640 [SCOI2010]连续攻击游戏
https://www.luogu.org/problem/show?pid=1640 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1, ...
- 连续攻击游戏【P1640洛谷】二分图匹配变形【好题】【每次memset太慢了,用时间戳id。】
lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备最多只能使 ...
- P1640 [SCOI2010]连续攻击游戏 二分图最大匹配 匈牙利算法
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
随机推荐
- 梦想CAD控件网页版搜索图面上的文字
在网页中查找到CAD控件图纸上的文字.点击此处在线演示. 主要用到函数说明: _DMxDrawX::NewSelectionSet 实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数. _DM ...
- xilinx vivado 百度云分享 vivado2019.1 2018.3 2017.4
vivado2019.1 sdx套件 链接:https://pan.baidu.com/s/1ymRpUa2UYTFuafEChA0-ZQ 提取码:cd4p 复制这段内容后打开百度网盘手机App,操作 ...
- myeclipse工具常用的用法
1. 自动提示:窗口->首选项->Java->编辑器->内容辅助->自动激活,在下面的“Java的自动激活触发器里面填上“.abcdefghijklmnopqrstuv ...
- linux基础常用语句--新手
查询:ls查看全部内容:ls -n删除:rm -rf 文件名创建目录: mkdir解压:rpm -验证是否安装:rpm -p 文件名rpm -ivh --nodeps 不需要前置条件的安装查询当前路径 ...
- 网络模型、IP命令、SS命令介绍
1. 分层对应关系 OSI七层模型和TCP/IP五层模型都属于TCP/IP协议栈,而TCP/IP协议栈只有两种传输层协议:TCP.UDP,所以对于Telnet.FTP这些协议,建议称之为承载在TCP之 ...
- mysql数据库变更监控(canal)
背景: 1. 一些项目的基础功能会有Audit Trace, 以记录系统用户所做过的所有记录. 2. 实时备份数据,比如mysql主从复制,一个用于面向应用,一个用于对应用数据库的实时备份. 3. 实 ...
- 不动点(Fixed Point)
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51735818 在数学中,函数的不动点( ...
- ZOJ——3609 Modular Inverse
Modular Inverse Time Limit: 2 Seconds Memory Limit: 65536 KB The modular modular multiplicative ...
- springMVC 返回中文字符串时乱码
转载自:https://blog.csdn.net/yaov_yy/article/details/51819567
- - > 贪心基础入门讲解三——活动安排问题二
有若干个活动,第i个开始时间和结束时间是[Si,fi),活动之间不能交叠,要把活动都安排完,至少需要几个教室? 分析:能否按照之一问题的解法,每个教室安排尽可能多的活动,即按结束时间排序,再贪心选 ...