[CF434D]Nanami's Power Plant
题目大意:
\(N\)个二次函数\(f_i(x)=a_ix^2+b_ix+c_i(l_i\le x\le r_i)\),\(M\)个约束条件\((u,v,d)\),表示\(x_u\le x_v+d\)。请最大化\(\sum_{i=1}^nf_i(x_i)\),其中\(x_i\)是整数。
对于\(100\%\)的数据,\(1 \leq N \leq 50 , 0 \leq M \leq 100 , |a_i| \leq 10 , |b_i| , |c_i| \leq 1000 , −100 \leq l_i \leq r_i \leq 100 , 1 \leq u , v \leq N , u \neq v , |d| \leq 200\),保证所有数均为整数。
思路:
将每个二次函数\(i\)拆成\(node(i,l_i-1)\sim node(i,r_i)\)共\(r_i-l_i+2\)个点。
对于所有的\(node(i,l_i-1)\),连边\(s\to node(i,l_i-1)\),容量为\(\infty\)。
对于所有的\(node(i,r_i)\),连边\(s\to node(i,r_i)\),容量为\(\infty\)。
用\(lim\)表示一个足够大的数,对于每个二次函数\(i\)中所有的\(node(i,j)\),连边\(node(i,j-1)\to node(i,j)\),容量为\(lim-f_i(j)\)。
考虑约束条件\((u,v,d)\),连边\(node(u,j)\to node(v,j−d)\),容量为\(\infty\)。
答案即为\(lim\times n-maxflow\)。
源代码:
#include