博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1854: [Scoi2010]游戏(匈牙利) / GDKOI Day2 T2(最大流)
阅读量:5078 次
发布时间:2019-06-12

本文共 1207 字,大约阅读时间需要 4 分钟。

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

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

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

代码如下:

#include
#include
#include
#include
using namespace std;struct poi{
int too,pre;}e[2000001];int n,x,y,t,tot,ans,num,lin[1000001],last[1000001],v[1000001];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 1; } } return 0;}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d %d",&x,&y),add(x,i),add(y,i); for(int i=1;i<=10000;i++) { ++t; if(dfs(i))ans++; else break; } printf("%d\n",ans);}
View Code

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

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

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

转载于:https://www.cnblogs.com/Sakits/p/6417695.html

你可能感兴趣的文章
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
IOS-图片操作集合
查看>>
模板统计LA 4670 Dominating Patterns
查看>>
团队项目开发客户端——登录子系统的设计
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
session如何保存在专门的StateServer服务器中
查看>>
react展示数据
查看>>
测试计划
查看>>