问题 E: 随机游走

内存限制:524 MB 时间限制:10 S
题面:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

在一片古老的遗迹中,探险者发现了一座由 nn 个宝藏节点(编号从 11 到 nn)组成的迷宫,节点之间通过 mm 条神秘通道(无向边)相连,形成一个连通的无向图。每个节点 ii 藏有一件宝物,价值为非负整数 aiai。探险者可以从任意节点开始探险,沿着通道移动到相邻节点,收集经过节点的宝物价值。然而,迷宫的魔法规则限制了移动:探险者不能连续两次通过同一条通道(即,如果通过某条通道从节点 vjvj 到达 vj+1vj+1,下一步不能通过同一条通道返回 vjvj)。探险者可以多次访问同一节点或通道(只要满足移动限制)。你的任务是规划一条路径,最大化探险者收集到的不同节点的宝物价值之和。请你求出这个最大的宝物价值之和。


为了防止输入过大带来的常数问题,C++ 选手请尽量使用关闭流同步的 std::cin 和 std::cout 实现输入输出,否则可能出现因读入输出问题导致的 TLE 等。

int main(){
  std::ios::sync_with_stdio(0);
  std::cin.tie(0);

  // your code

  return 0;
}



输入格式

第一行一个整数 TT (1≤T≤5×106)(1T5×106),表示测试数据组数。

第一行两个整数 nn 和 mm (1≤n≤2×105,n−1≤m≤2×105)(1n2×105,n1m2×105),分别表示顶点数和边数。

第二行 nn 个非负整数 a1,a2,…,ana1,a2,,an (0≤ai≤109)(0ai109),表示每个节点的宝物价值。

接下来 mm 行,每行两个整数 u,vu,v (1≤u,v≤n,u≠v)(1u,vn,u=v),表示一条无向边 (u,v)(u,v)。保证图连通,不存在重边和自环。

保证所有测试数据的 nn 之和和 mm 之和均不超过 5×1065×106

输出格式

对于每组数据,输出一行一个整数,表示能获得的最大宝物价值之和。

输入样例 复制

2
4 4
10 20 30 40
1 2
2 3
3 4
4 1
3 2
5 10 15
1 2
2 3

输出样例 复制

100
30