CF1456E.XOR-ranges

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定整数 c0,c1,…,ck−1c_{0}, c_{1}, \ldots, c_{k-1},我们可以定义一个数 0≤x<2k0 \le x < 2^{k} 的代价为 p(x)=∑i=0k−1(⌊x2i⌋ mod 2)⋅cip(x) = \sum_{i=0}^{k-1} \left( \left\lfloor \frac{x}{2^{i}} \right\rfloor \bmod 2 \right) \cdot c_{i}。换句话说,数 xx 的代价等于 xx 的所有二进制位中为 11 的位所对应的 cic_{i} 之和。

我们定义长度为 n≥2n \ge 2、元素取自区间 [0,2k)[0, 2^{k}) 的数组 aa 的代价如下:cost(a)=∑i=1n−1p(ai⊕ai+1)cost(a) = \sum_{i=1}^{n - 1} p(a_{i} \oplus a_{i+1}),其中 ⊕\oplus 表示按位异或运算。

现在给定每个元素的取值范围:li≤ai≤ril_{i} \le a_{i} \le r_{i},请你构造一个长度为 nn 的数组,使其代价最小。

输入格式

第一行包含两个整数 nn 和 kk(2≤n≤502 \le n \le 50,1≤k≤501 \le k \le 50),分别表示数组的长度和数字的二进制位数。

接下来的 nn 行,每行包含两个整数 lil_{i} 和 rir_{i}(0≤li≤ri<2k0 \le l_{i} \le r_{i} < 2^{k}),表示第 ii 个元素的取值范围。

最后一行包含 c0,c1,…,ck−1c_{0}, c_{1}, \ldots, c_{k-1}(0≤ci≤10120 \le c_{i} \le 10^{12})。

输出格式

输出一个整数,表示满足所有限制条件的数组的最小代价。

输入输出样例

  • 输入#1

    4 3
    3 3
    5 5
    6 6
    1 1
    5 2 7

    输出#1

    30
  • 输入#2

    3 3
    2 2
    3 4
    4 6
    1 10 100

    输出#2

    102

说明/提示

在第一个样例中,只有一个数组满足所有限制条件——[3,5,6,1][3, 5, 6, 1],其代价为 cost([3,5,6,1])=p(3⊕5)+p(5⊕6)+p(6⊕1)=p(6)+p(3)+p(7)=(c1+c2)+(c0+c1)+(c0+c1+c2)=(2+7)+(5+2)+(5+2+7)=30cost([3, 5, 6, 1]) = p(3 \oplus 5) + p(5 \oplus 6) + p(6 \oplus 1) = p(6) + p(3) + p(7) = (c_{1} + c_{2}) + (c_{0} + c_{1}) + (c_{0} + c_{1} + c_{2}) = (2 + 7) + (5 + 2) + (5 + 2 + 7) = 30。

在第二个样例中,唯一的最优数组是 [2,3,6][2, 3, 6]。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页