P1640 [SCOI2010]连续攻击游戏

题目描述

lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害。也就是说一开始的时候,lxhgww只能使用某个属性值为1的装备攻击boss,然后只能使用某个属性值为2的装备攻击boss,然后只能使用某个属性值为3的装备攻击boss……以此类推。现在lxhgww想知道他最多能连续攻击boss多少次?

这题?$sort$一遍不就通过了吗,$O(nlogn)$

#include<bits/stdc++.h>#define N 1000005
using namespace std;int n;
struct node{int a,b;
}e[N];
bool vis[N];bool cmp(node A,node B){return A.a==B.a ? A.b<B.b : A.a<B.a;
}int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d%d",&e[i].a,&e[i].b);if(e[i].a>e[i].b) swap(e[i].a,e[i].b);}sort(e+1,e+1+n,cmp);for(int i=1;i<=n;i++){if(!vis[e[i].a]) vis[e[i].a]=1;else vis[e[i].b]=1;}for(int i=1;i<=N-1;i++){if(!vis[i]){printf("%d\n",i-1);return 0;}}}

不过二分图最大匹配的思路时间复杂度貌似更有优秀啊

将属性向编号连边,就好像属性在编号里匹配,把它抽象成物品就好理解啦

#include<bits/stdc++.h>#define N 4000005
using namespace std;int n,head[N],tot,ans;
struct node{int to,next;
}e[N];void add(int u,int v){e[++tot].to=v,e[tot].next=head[u],head[u]=tot;
}int dfn[N],match[N];
bool dfs(int u,int t){for(int i=head[u];i;i=e[i].next){int v=e[i].to;if(dfn[v]!=t){dfn[v]=t;if(!match[v]||dfs(match[v],i)){match[v]=u;return true;}}}return false;
}int main()
{scanf("%d",&n);for(int u,v,i=1;i<=n;i++){scanf("%d%d",&u,&v);add(u,i),add(v,i);}for(int i=1;i<=1000000;i++){if(dfs(i,i)) ++ans;else break;}printf("%d\n",ans);
}

转载于:https://www.cnblogs.com/song-/p/9833248.html

洛谷——P1640 [SCOI2010]连续攻击游戏相关推荐

  1. P1640 [SCOI2010]连续攻击游戏 匈牙利算法

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

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

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

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

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

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

    传送门 题面: 题解: 不看标签还是很难想到建图,看了标签也想不到怎么建图. 因为每个数字只能被选择一次,每个装备也只能被选择一次,那么就可以考虑装备与两个属性之间建边. 那么问题就变成了二分图最大匹 ...

  5. 洛谷P1129 [ZJOI2007] 矩阵游戏 题解

    洛谷P1129 [ZJOI2007] 矩阵游戏 题解 题目链接:P1129 [ZJOI2007] 矩阵游戏 题意:给定一张有黑白棋子的正方形棋盘,问存不存在解法使得经过若干次交换行或列的操作后,左上角 ...

  6. 洛谷解题P1000 超级玛丽游戏(C++)

    此文章关于洛谷P1000 超级玛丽游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1000题目的解析: 先看题 ...

  7. 【bzoj3240 洛谷P1397】矩阵游戏[NOI2013](矩阵乘法+卡常)

    题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3240 这道题其实有普通快速幂+费马小定理的解法--然而我太弱了,一开始只想到了矩阵乘法的 ...

  8. [洛谷P2584][ZJOI2006]GameZ游戏排名系统

    题目大意:同[洛谷P4291][HAOI2008]排名系统(双倍经验) 题解:略 卡点:无 C++ Code: #include <cstdio> #include <map> ...

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

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

最新文章

  1. 用二维编码做特色名片!
  2. TCP/IP学习笔记(三)TCP流量控制以及滑动窗口
  3. Angular html 页面里的井号 #
  4. 【Raspberry Pi - Raspbian】系统换更新源
  5. utf-8转换gbk代码_将代码转换为现金-如何以Web开发人员的身份赚钱并讲述故事。...
  6. python 垃圾回收机制
  7. java 强制类型转换告警_java-对未声明的强制转换返回警告
  8. No module named 'django.core.urlresolvers
  9. Python中非纯文本文件的读取
  10. Linux C++ STL用法介绍(1)
  11. springBoot(5)---单元测试,全局异常
  12. 【数论】Concatenated Multiples【codeforces-Round #506-div3-D】
  13. 计算机网络hdcp是什么意思,为什么显卡面板显示此显示器不支持HDCP是怎么回事...
  14. 经过几天的努力,出了 2 本保姆级编程电子书!
  15. 《缠中说禅108课》15:没有趋势,没有背驰
  16. matlab图像身高测量,基于Kinect景深图像的快速身高和体重测量方法
  17. AIX 修 炼 之 路
  18. 重磅!2021年国内Java培训机构排名十强出炉啦!
  19. 第四章 姜诸儿意气风发登君位 鲁桓公窝囊枉死彭生手
  20. [SPRD]展锐Android R关机充电动画修改

热门文章

  1. linux与windows下tomcat的java内存设置
  2. 如何在gvim中安装autoproto自动显示函数原型
  3. 使用Spring Session做分布式会话管理
  4. [LintCode] strStr [KMP brute force]
  5. Web UI 制作规范
  6. formal method revision
  7. 万向节死锁 gimbal lock
  8. C#中的Decimal类型
  9. JavaFX FileChooser文件选择器,缓存上一次打开的目录
  10. Keepalived+Nginx 实现双机热备