BJ模拟(1) D1T1 Delight for a Cat
来源:互联网 发布:stc12c5a单片机引脚 编辑:程序博客网 时间:2024/06/06 08:33
题目背景:
thoj22
分析:
首先,如果你没有学习过NOI2008的志愿者招募,请先去A掉那道题这里
首先,假设这只猫在所有天数都是睡觉,我们稍后再决策将哪些天数改为吃东西。
我们用 Xi = 0 表示这只猫在第i天睡觉, Xi = 1 表示吃东西。
则有下列不等式:
me ≤ X1 + X2+ X3 +...+ Xk ≤ k − ms
me ≤ X2 + X3+ X4 +...+ Xk+1 ≤ k − ms
...
me ≤ Xn-k+1 + Xn-k+2+...+ Xn ≤ k − ms
我们令 0 ≤ Y1 ≤ k – ms − me ,则上述不等式可以转化为以下
的等式:
X1 + X2+ X3 +...+ Xk + Y1 = k − ms
X2 + X3+ X4 +...+ Xk+1 + Y2 = k − ms
...
Xn−k+1 + Xn−k+2 +...+ Xn +Yn−k+1 = k − ms
将这些等式两两相减,得:
X1 − Xk+1 + Y1− Y2=0
X2 − Xk+2 + Y2− Y3=0
...
Xn−k − Xn + Yn−k − Yn−k+1 = 0
(k − ms) – X1 − X2 −...− Xk − Y1 = 0
Xn−k+1 + Xn−k+2 +...+ Xn +Yn−k+1 − (k − ms) = 0
我们把等式左边加起来,发现恰好为0,满足流量平衡。
把上述每个等式看成一个点,若在第j个等式有-Yi,第k个等式有Yi,则向连一条从j到k的容量为k–ms–me的边,若在第j个等式有-Xi,在第k个等式有Xi则连一条j到k容量为1的边,然后对于正的常数c出现在第j个等式,从原点到j连一条容量为c的边,若对于负的常数-c出现在第k个等式,从k向汇点连一条容量为c的边,因为这一题还需要有费用,所以在相应的边上加上费用限制即可,最后跑一遍费用流。
Source:
- BJ模拟(1) D1T1 Delight for a Cat
- BJ模拟(1) D1T1 计数
- bzoj 4842: [Neerc2016]Delight for a Cat (费用流)
- [线性规划 费用流]Codeforces Gym101190D.Delight for a cat
- [费用流建模] Codeforces Gym 101190 NEERC 16 D. Delight for a Cat
- BJ模拟:stwell(BFS)
- BJ模拟(1) D2T1 Bash Plays with Functions
- BJ模拟(1) D2T2 Alice and Bob IV
- BJ模拟(1) D2T3 链上求和
- BJ模拟(2) D1T2 摩尔庄园
- BJ模拟(2) D2T2 随机游走
- BJ模拟(2) D2T3 路径规划
- BJ模拟(2) D3T1 and
- BJ模拟 医院(支配树DominatorTree)
- BJ模拟 等差数列(分块+FFT)
- BJ模拟 生日礼物(斯特林数+NTT)
- BJ模拟(2) D2T1 简单粗暴的题目
- BJ模拟(2) D3T2 相似子串
- runc源码分析——create和start
- iOS 在Debug下显示log,在Release下屏蔽log输出
- Python轻松入门-25 字典的操作
- 223. Rectangle Area
- iOS 巧妙使用编译宏定义让代码在不同的情况下执行
- BJ模拟(1) D1T1 Delight for a Cat
- 小米网关接入Homekit完整教程
- 数据挖掘中的抽样方法--简单记录
- avplayer 播放崩溃 0__cxa__thread
- 【学习笔记】简单寻路算法(低效率)
- [Tkinter 教程06] Checkbox 控件
- JavaScript—深入理解JavaScript 模块模式
- 【学习笔记】拦截导弹 JAVA
- (OK) 编译 LineageOS-14.1-kiwi for (VirtualBox) 编译输出