题目大意:有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。每种装备最多只能使用一次,且只能使用其中一种属性。装备所使用的属性值必须从1开始连续。问最多能攻击多少次?

题解:每个装备从属性像编号连边,匈牙利算法,跑出匹配,若一个匹配不了就结束

卡点:

C++ Code:

#include<cstdio>
using namespace std;
int n,idx,ans;
int head[10010],cnt;
struct Edge{
int to,nxt;
}e[1000010<<1];
int v[10010],res[1000010];
void add(int a,int b){
e[++cnt]=(Edge){b,head[a]};head[a]=cnt;
}
bool dfs(int x){
if (v[x]==idx)return false;
v[x]=idx;
for (int i=head[x];i;i=e[i].nxt){
int to=e[i].to;
if (!res[to]||dfs(res[to])){
res[to]=x;return true;
}
}
return false;
}
int main(){
scanf("%d",&n);
for (int i=1;i<=n;i++){
int x,y;
scanf("%d%d",&x,&y);
add(x,i),add(y,i);
}
for (int i=1;i<=10000;i++){
idx++;
if (dfs(i))ans++;else break;
}
printf("%d\n",ans);
return 0;
}

  

[洛谷P1640][SCOI2010]连续攻击游戏的更多相关文章

  1. 洛谷 P1640 [SCOI2010]连续攻击游戏 解题报告

    P1640 [SCOI2010]连续攻击游戏 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备 ...

  2. 洛谷——P1640 [SCOI2010]连续攻击游戏

    P1640 [SCOI2010]连续攻击游戏 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备 ...

  3. 洛谷P1640 [SCOI2010]连续攻击游戏(二分图)

    题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...

  4. 洛谷—— P1640 [SCOI2010]连续攻击游戏

    https://www.luogu.org/problem/show?pid=1640 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1, ...

  5. 洛谷 P1640 SCOI2010 连续攻击游戏 并查集

    题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...

  6. 洛谷P1640 [SCOI2010]连续攻击游戏 题解

    题目链接: https://www.luogu.org/problemnew/show/P1640 分析: 这道题用二分图来解决即可.应该可以作为网络流中的模板题来食用, 每一个武器有两个属性,但是只 ...

  7. 洛谷P1640 SCOI2010 连续攻击游戏 (并查集/匹配)

    本题介绍两种做法: 1 并查集 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1000005; 4 int ...

  8. 洛谷 P1640 [SCOI2010]连续攻击问题

    洛谷 一句话题意: 每个武器有两种属性,每种武器只能选择一种属性,从属性1连续递增才算攻击,求最大连续攻击次数. 因为同学告诉我这是二分图最大匹配,自然就往那个方向去想. 那么怎么建图呢? 每个武器只 ...

  9. 洛谷 P1640 【连续攻击游戏】

    question bank :luogu question Number :1640 title :Continuous attacking game link :https://www.luogu. ...

随机推荐

  1. js中String 转化为 Date

    <script> var s=["2008-8-1","2009/9/2","10/3/2010"]; for(var i=0; ...

  2. Vue+webpack构建一个项目

    1.安装CLI命令的工具  推荐用淘宝的镜像 npm install -g @vue/cli @vue/cli-init 2.使用命令构建一个名为myapp的项目 vue init webpack m ...

  3. 微信小程序图片上传

    uploadImage : function (){ wx.chooseImage({ count: 9, // 默认9 sizeType: ['original', 'compressed'], / ...

  4. hadoop生态搭建(3节点)-07.hive配置

    # http://archive.apache.org/dist/hive/hive-2.1.1/ # ================================================ ...

  5. MongoDB修改数据库名,collection名

    利用dropDatabase,copyDatabase修改Database名称 db.copyDatabase('old_name', 'new_name'); use old_name db.dro ...

  6. 第三章 最简单的C程序设计——顺序程序设计

    一.数据的表现形式及其运算 1.常量和变量 在计算机高级语言中,数据有两种表现形式:常量和变量. 1.1.常量 在程序运行过程中,其值不能被改变的量称为常量.如:5,6,32,0.111. 数值常量就 ...

  7. 007---logging日志模块

    logging模块 用途:服务器运行日志.运维日志... import logging from logging.handlers import RotatingFileHandler, TimedR ...

  8. AOP原理??

    面向切面编程,在我们的应用中,经常需要做一些事情,但是这些事情与核心业务无关,比如,事务.日志.权限拦截.统一异常处理等等.Spring AOP使用了代理模式. Spring AOP底层利用两种代理模 ...

  9. php 使用GD库压缩图片,添加文字图片水印

    先上一个工具类,提供了压缩,添加文字.图片水印等方法: image.class.php <?php class Image { private $info; private $image; pu ...

  10. ABP官方文档

    https://aspnetboilerplate.com/Pages/Documents/Introduction