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的更多相关文章
随机推荐
- fluentValidation集成到autofac
废话不说直接上代码 // 首先实现ValidatorFactory public class DependencyResolverValidatorFactory : ValidatorFactory ...
- 【BZOJ5101】[POI2018]Powód 并查集
[BZOJ5101][POI2018]Powód Description 在地面上有一个水箱,它的俯视图被划分成了n行m列个方格,相邻两个方格之间有一堵厚度可以忽略不计的墙,水箱与外界之间有一堵高度无 ...
- Linux配置Nginx,MySql,php-fpm开机启动的方法
一. Nginx 开机启动 1.在/etc/init.d/目录下创建脚本 vim /etc/init.d/nginx 2.编写脚本内容 (将以下复制进去相应改动安装路径) 1 2 3 4 5 6 7 ...
- 170616、解决 java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList
报错截图: 原因:搭建项目的时候,springmvc默认是没有对象转换成json的转换器的,需要手动添加jackson依赖. 解决步骤: 1.添加jackson依赖到pom.xml <!-- j ...
- Spring-Boot整合freemarker引入静态资源css、js等
一.概述 springboot 默认静态资源访问的路径为:/static 或 /public 或 /resources 或 /META-INF/resources 这样的地址都必须定义在src/mai ...
- python threading.thread
Thread 是threading模块中最重要的类之一,可以使用它来创建线程.有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法:另一种是创建一个threading.Thread对 ...
- python 面向对象 字典 有序字典
和原来字典一模一样 把dict 传进去 相当于这个类就是一个字典 # 把dict 传进去 相当于这个类就是一个字典 class Mydict(dict): pass d = Mydict() prin ...
- python 面向对象· self 讲解
self就是参数 以形参形式 5.self是什么鬼? self是一个python自动会给传值的参数 那个对象执行方法,self就是谁. obj1.fetch('selec...') self=obj1 ...
- android Dialog官方demo
1.普通的Dialog AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("今天 ...
- 【代码片段】Python发送带图片的邮件
# coding=utf-8 import smtplib from email.mime.text import MIMEText from email.mime.multipart import ...