题目链接:

https://www.luogu.org/problemnew/show/P1640

分析:

这道题用二分图来解决即可.应该可以作为网络流中的模板题来食用,

每一个武器有两个属性,但是只能取一个用,由此我们便可以想到与二分图挂钩。

二分图匹配当中,一个点只能和一个点匹配

问题当中要从小到大使用所有属性,所以肯定要有以1…10000属性为点的一侧

把装备放在另一侧,装备和它的两个属性连边.

(也就相当于从左到右一连,再从右到左一连,才相当于用了两个属性。

从小到大匹配属性点,

因为题目要求必须要每个技能依次释放,所以要有else break环节,这是一个网络流二分图中需要重点注意的环节,有时要加而有时不要,这里要加上还是比较好理解的。

代码:

#include<cstdio>
#include<vector>
#include<cmath>
using namespace std;
vector<int>v[10005];
int vis[1000005],link[1000005];
int t;
bool find(int x)//二分图模板,简单而且理解也不难,墙裂建议借鉴
{
for(int i=0;i<v[x].size();i++)
{
int p=v[x][i];
if(vis[p]!=t)
{
vis[p]=t;
if(link[p]==0||find(link[p]))
{
link[p]=x;
return 1;
}
}
}
return 0;
}
int main()
{
int n;
scanf("%d",&n);
int maxf=0;
for(int i=1;i<=n;i++)
{
int a,b;
scanf("%d%d",&a,&b);
v[a].push_back(i);
v[b].push_back(i);
}
int cnt=0;
for(int i=1;i<=n;i++)
{
t++;
if(find(i))
{
cnt++;
}
else
break;
}
printf("%d\n",cnt);
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]连续攻击游戏

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

  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. 使用VC2005编译真正的静态Qt程序 good

    首先,你应该该知道什么叫静态引用编译.什么叫动态引用编译.我这里只是简单的提提,具体的可以google一下. 动态引用编译,是指相关的库,以dll的形式引用库.动态编译的Exe程序尺寸比较小,因为相关 ...

  2. MyCat的初步了解

    MyCat 1 开源数据库中间件 MyCat   如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据 ...

  3. Linux下的帮助命令

    内建命令,外部命令,命令别名:使用:type 命令名,查看 内建命令是shell一部分,一开始就加载进内存,程序一般简单:外部命令反之 2.  帮助命令的使用 内建命令:help 命令名:外部命令:命 ...

  4. QT5.6,5.7,5.8的新特征以及展望(Qt5.7首次正式支持Qt3D,以前都是预览版)

    https://wiki.qt.io/New_Features_in_Qt_5.6 (跨平台High-DPI,改进WebEngine到45,支持WIN 10,Canvas3D,3D) https:// ...

  5. Dev C++ 工程没有调试信息 解决办法

    Dev C++ 工程没有调试信息 解决方法DevC++4.9.9.2中,按 F8 开始调试.提示信息为:工程没有调试信息,您想打开工程的调试选项并重新生成吗?选择是后,再按F8,仍旧是这个信息.什么原 ...

  6. 【搜索引擎】Solr全文检索近实时查询优化

    设置多个搜索建议查找算法 <searchComponent name="suggest" class="solr.SuggestComponent"> ...

  7. 08 JS的事件流的概念(重点)

    在学习jQuery的事件之前,大家必须要对JS的事件有所了解.看下文 事件的概念 HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件.页面的滚动事件onscroll等等,可以 ...

  8. Unity AssetBundle,Asset,GameObject之间的联系

    一.问题 首先,这里说明一下,我这边的GameObject有点笼统,就是表达的是游戏中的具体实例. 二.概念 1)Asset是什么? 游戏中具体的资源,像texture,mesh,material,s ...

  9. 写在Logg SAP项目上线之际

    根据大环境大行业的惯用做法,公司建立Logg品牌是在意料之中.毫无意外的,Logg也要上到SAP系统中. 其实按它的业务模式来说上SAP系统并不困难,早在几年前就已经有做过了.无非就是接单不生产,外包 ...

  10. aspose授权亲测可用配套代码

    支持excel,word,ppt,pdf using Aspose.Cells; using Aspose.Words.Saving; using ESBasic; using OMCS.Engine ...