CF_321_B_NetFlow
题面:据说题目描述是游戏王的规则,然而我并没有玩过。大概意思就是我方有m张攻击牌,敌方有n张牌(防御,攻击都有),如果一回合我方选择攻击牌(X)攻击敌方防守牌(Y)且$Vval_X > Val_Y$,那么可以打掉敌方该牌但没有伤害,如果是攻击打攻击,除了打掉敌方牌之外,还可以获得$Damge = Val_X - Val_Y$。此外,如果敌方已经无牌,我方选择牌(X),则直接获得$Val_X$的伤害,我方可以选择随时结束游戏,求造成的最大伤害值。
题解:既然选的是flows专题,那肯定是flows,个人感觉可以贪心,但是由于练习flows,就用flows写了,后来贪心想了半天,想不出来,至于flows,网上很多版本是跑两次,其实可以运用费用流的最短路进行边权控制,使得一些边在后面才可以跑到。详细来说,就是根据规则连边,然后考虑对方牌组为空的情况,显然要把每一张己方牌考虑进来,于是乎这里出现了边权控制,将边权置大,到后面跑到再减回来。并且注意,只有到达满流(敌方牌组为空)之后,才有可能有这种情况。
代码学习,就是从这位博主那里学习到了费用控制,一开始自己对于敌方牌组为空的处理并不能跑出答案,因为没有考虑到这是满流之后的情况。
CF_321_B_NetFlow的更多相关文章
随机推荐
- ubuntu 14.04 返回到经典桌面方法
1.打开终端,运行下面命令:sudo apt-get install gnome-session-fallback 2.重启机器,选择gnome,然后登录
- sencha touch 组件选择器getCmp和ComponentQuery.query()的效率解析
昨天无意中在网上看到一篇讲解sencha touch组件选择器的文章,名为 Sencha touch 2通过Ext.ComponentQuery.query查找组件. 里面对组件选择器的效率讲解完全反 ...
- bootstrap+html5+css3
一.栅格和块阴影 <!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - 堆叠的水平</title ...
- Java初学者笔记四:按行读写文件和输入处理
一.我们来看python的很简单: 1.读文件: with open("/path/file","r") as fr: for line in fr.readl ...
- Linux更换jdk版本,java -version还是原来的版本问题
服务器上默认安装版本是: 使用jenkins最新的安装包 2.73.1,启动报错52.0!需要使用1.8进行启动. 两种方式,要么tomcat直接指定,要么修改环境变量,这里我使用修改安装java版本 ...
- AStar A* A星 算法TypeScript版本
一 演示效果 二 参考教程 <ActionScript3.0 高级动画教程> + 源码 http://download.csdn.net/download/zhengchengpeng/ ...
- DetailView内匿名函数不可用
DetailView yii\widgets\DetailView 小部件显示的是单一 yii\widgets\DetailView::$model 数据的详情. 它非常适合用常规格式显示一个模型(例 ...
- Pentaho Report Designer 数据大于某值显示红色
在细节栏中的字段的属性, 在样式的text-color,右边的表达式 输入下面表达式即可! =IF( [ALL_VALUE] > 50 ; "black" ; IF([ALL ...
- ArrayList遍历的三种方式 array arrayList转换
ArrayList遍历的三种方式 - 呵呵静 - 博客园 https://www.cnblogs.com/mjyung/p/6725182.html
- 005-spring cache-配置缓存存储
一.概述 缓存抽象提供了多种存储集成.要使用它们,需要简单地声明一个适当的CacheManager - 一个控制和管理Caches的实体,可用于检索这些实体以进行存储. 1.1.基于JDK Concu ...