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