luogu#P6934. [ICPC2017 WF] Posterize

[ICPC2017 WF] Posterize

题目描述

Pixels in a digital picture can be represented with three integers in the range 00 to 255255 that indicate the intensity of the red, green, and blue colors. To compress an image or to create an artistic effect, many photo-editing tools include a posterize operation which works as follows. Each color channel is examined separately; this problem focuses only on the red channel. Rather than allow all integers from 00 to 255255 for the red channel, a posterized image allows at most kk integers from this range. Each pixel's original red intensity is replaced with the nearest of the allowed integers. The photo-editing tool selects a set of kk integers that minimizes the sum of the squared errors introduced across all pixels in the original image. If there are nn pixels that have original red values r1,r_{1}, . . . , rn,r_{n}, and kk allowed integers v1,v_{1}, . . . , vk,v_{k}, the sum of squared errors is defined as

$\(\su_m_{i=1}^{n}{\mi_n_{1 \le j \le k}{(r_i - v_j)^2}}\).$

Your task is to compute the minimum achievable sum of squared errors, given parameter kk and a description of the red intensities of an image's pixels.

输入格式

The first line of the input contains two integers d(1d256)d (1 \le d \le 256) , the number of distinct red values that occur in the original image, and k(1kd)k (1 \le k \le d) , the number of distinct red values allowed in the posterized image. The remaining dd lines indicate the number of pixels of the image having various red values. Each such line contains two integers r(0r255)r (0 \le r \le 255) and p(1p226),p (1 \le p \le 2^{26}), where rr is a red intensity value and pp is the number of pixels having red intensity rr . Those dd lines are given in increasing order of red value.

输出格式

Display the sum of the squared errors for an optimally chosen set of kk allowed integer values.

题目大意

给定 dd 类元素,第 ii 类元素的取值为 rir_i,且有 pip_i 个,按照这些信息可以将这些元素排列在一个长度为 n=pin=\sum p_i 的序列里,现在你要做的是规划一个长度为 kk 的序列 viv_i,使得按照如下定义的序列误差最小:

$$\sum\limits_{i=1}^n \min\limits_{1 \le j \le k}(r_i-v_j)^2 $$

求最小序列误差。

1kd2561 \le k \le d \le 2560r2550 \le r \le 2551p2261 \le p \le 2^{26}

翻译者:一只书虫仔

2 1
50 20000
150 10000

66670000

2 2
50 20000
150 10000

0

4 2
0 30000
25 30000
50 30000
255 30000

37500000

提示

Time limit: 2 s, Memory limit: 512 MB.