摘要: 刚开始往网络流的方向想。建不出图。。。 因为每次只能对一行进行染色。每一行都是独立的。 对于每一行,因为格子只能染一次,所以可以发现这是一个多阶段决策问题,这个决策就是当前格子染0还是染1. 令dp[i][j][k](k==0||k==1)表示当前行第i个格子用了j次染色,且这次染色染为k色 的最多 阅读全文
posted @ 2017-03-14 21:06 free-loop 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 把坐标离散化之后就是很普通的尺取法啦。 # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # include <queue> # include <st 阅读全文
posted @ 2017-03-14 18:47 free-loop 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 我们不妨考虑可以划分为实数的情况,设划分为x份实数,使得总乘积最大。 易得当每一份都相等时乘积最大。即 ans=(n/x)^x. 现在只需要求出这个函数取得最大值的时候x的取值了。 两边取对数,则有ln(ans)=x*ln(n/x). 再两边取导数。可得当x=n/e的时候,每份是e的时候,总乘积最大 阅读全文
posted @ 2017-03-14 18:18 free-loop 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 容易看出这是显然的费用流模型。 把每天需要的餐巾数作为限制。需要将天数拆点,x’表示每天需要的餐巾,x’’表示每天用完的餐巾。所以加边 (s,x',INF,0),(x'',t,INF,0). 餐巾可以新买。所以需要加边(s,x'',INF,f)。 没用完餐巾可以留到下一天,所以加边(x',x+1', 阅读全文
posted @ 2017-03-14 14:17 free-loop 阅读(182) 评论(0) 推荐(0) 编辑