题目链接: The Child and Toy
大致题意
给出有n个顶点, m条边的无向图.
删除掉一个点的代价是: 所有与该点相连的, 且未被删除的点的权值和.
问: 删除掉所有点的最小代价是多少.
解题思路
思维
考虑到最终情况是, 图中所有的点都被删除了, 且图中不存在任何边.
我们分析所有边对答案的贡献. 每一条边(a, b)被删除, 要么是删除b, 增加 w a w_a wa的贡献, 要么是删除a, 增加 w b w_b wb的贡献.
因此最终答案就是 ∑ i = 1 m m i n ( w a , w b ) \displaystyle\sum_{i = 1}^{m} min(w_a, w_b) i=1∑mmin(wa,wb).
AC代码
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 1; i <= (n); ++i)
using namespace std;
typedef long long ll;
const int N = 1E3 + 10;
int w[N];
int main()
{
int n, m; cin >> n >> m;
rep(i, n) scanf("%d", &w[i]);
int res = 0;
rep(i, m) {
int a, b; scanf("%d %d", &a, &b);
res += min(w[a], w[b]);
}
cout << res << endl;
return 0;
}