#P16493. [PM2346]艾文的魔术巡演
[PM2346]艾文的魔术巡演
背景
魔术师艾文准备开启他的全国巡演。他有两套完全不同的魔术节目——「幻影之夜」和「星辰奇缘」。艾文计划在若干座城市演出,每座城市恰好演出其中一场。由于相邻城市之间观众流动频繁,为了避免同一批观众短期内看到重复节目、影响票房,任何两座有直接公路相连的城市都不能安排同一套节目。
现在,艾文拿到了各城市的人口数据与城市间的公路连接图。他希望尽可能让观看「幻影之夜」的总人数与观看「星辰奇缘」的总人数接近,从而在两套节目之间保持宣传热度平衡。你的任务是帮他计算出这两个总人数之差的最小可能值。
题目描述
给定 座城市,编号为 到 。第 座城市的人口为 。
城市之间的公路连接情况由一个 的矩阵 描述: 表示城市 与城市 之间有一条公路, 表示没有。该矩阵满足:
- 对角线元素为 (城市不与自身相连);
- 矩阵对称(公路是双向的);
- 数据保证存在一种方案,使得任意相邻城市安排不同节目。
你需要为每座城市选择一场节目(标记为 或 ),使得任意相邻城市标记不同,并且
$$\left|\sum_{\text{标记为 }1} p_i \;-\; \sum_{\text{标记为 }2} p_i\right|$$最小。输出这个最小值。
输入格式
第一行一个整数 ,表示城市数量。
接下来 行,每行一个长度为 的字符串,仅由 0 和 1 组成,表示公路连接矩阵。
最后一行 个整数 ,表示每座城市的人口。
输出格式
输出一个整数,表示观看两场节目的总人数之差的最小可能值。
样例
样例 1
2
01
10
15 20
5
样例 2
4
0100
1000
0001
0010
2 4 2 4
0
样例 3
3
000
000
000
6 7 15
2
数据范围
- ;
- ;
- 中只包含
0和1; - ,且 ;
- 保证存在满足条件的节目安排方案。