题目大意:有n(<=1000000)个装备,每个装备有两个属性值(<=10000),每个装备只能用一次,使用某一个值,攻击boss必须先使用属性为1的,再使用属性为2的,再使用属性为3的,以此类推······问最多攻击多少次。

  每个武器和他的两个属性值连边,跑匈牙利。

  学会了新的技巧,可以省掉1w个memset(这题是真·1w个 2333333)。

代码如下:

#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
using namespace std;
struct poi{int too,pre;}e[];
int n,x,y,t,tot,ans,num,lin[],last[],v[];
void add(int x,int y){e[++tot].too=y;e[tot].pre=last[x];last[x]=tot;}
bool dfs(int x)
{
for(int i=last[x],too=e[i].too;i;i=e[i].pre,too=e[i].too)
if(v[too]!=t)
{
v[too]=t;
if((!lin[too])||dfs(lin[too]))
{
lin[too]=x;
return ;
}
}
return ;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d %d",&x,&y),add(x,i),add(y,i);
for(int i=;i<=;i++)
{
++t;
if(dfs(i))ans++;
else break;
}
printf("%d\n",ans);
}

  虽然初三狗没法去GDKOI,但是还是问到了GDKOI的题意OWO(金中大爷都好劲啊!

  GDKOI Day2T2挺像的,n个士兵,每个兵有两个属性值,每个士兵进攻一次,只能选择一个属性值,攻击boss必须属性值高于h,每次派出的士兵属性值要比前一次高,问最多攻击多少次。

  源点和每个士兵连边容量为1,每个士兵和两个属性值连边,大于h的属性值和汇点连边容量为1,跑最大流。

最新文章

  1. UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
  2. 微信小程序-上传下载
  3. 日常UVA题目英语积累
  4. 项目管理知识体系指南(PMBOOK指南)(第5版) 阅读摘要
  5. relative 和 absolute
  6. 谈谈JPA-04-JPA的常用API
  7. STM32单片机实现中断后不继续向下执行而是返回到main函数
  8. JVM 内存分为四大块
  9. 使用Python-iGraph绘制贴吧/微博好友关系图
  10. [转载] 谷歌技术&quot;三宝&quot;之谷歌文件系统
  11. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上
  12. RabbitMQ在windows系统安装部署文档
  13. (转)Syntax error:
  14. LeetCode 566 Reshape the Matrix 解题报告
  15. 从头入手jenkins
  16. Delphi实现菜单项上出现提示
  17. Docker学习1-基本概念
  18. NESTED最终与外部事务合并在一起提交
  19. 进阶之路(基础篇) - 014 通过RGB灯输出七色
  20. 得到不知道维度的string数组的维度

热门文章

  1. python操作字符串内容并重新输出
  2. TW实习日记:第26天
  3. [Clr via C#读书笔记]Cp3共享程序集和强命名程
  4. 【Linux】Face Recognition的封装
  5. HADOOP/HDFS Essay
  6. 基于freeRTOS定时器实现闹钟(定时)任务
  7. Js全反选DataGrid
  8. nginx 添加的配置信息
  9. 团队协作第八周个人PSP
  10. Ubuntu使用时遇到的问题