Codeforces Round #250 Div1A Div2C 437C The Child and Toy 贪心
2014-06-01 23:23
190 查看
这道题我在考场上并不是自己想出来的,是在别人帮助下搞懂的。
我做的题也不是很多,所以只要见到一道我觉得新奇的题目可能就会在这里记下来,神牛请无视。
这道题我觉得是一个比较好的题目,先说说题目大意吧。题目中给了你一个图,每个点上有权值,每次可以消除一个图中的点及与该点有关系的边,其代价为当前与该点直接相连的所有点权值之和。求出一个操作的序列,使得总代价最小。(只要求输出总代价,不用输出操作序列)
首先,如果从点的角度考虑,那么本题将变得非常难做。这个时候,我们不妨换一个角度考虑,就是从边出发。
每一条边只会消除一次,那一次操作这条边贡献的代价即为这条边连接的两个顶点中后被删除的点的权值。
这样我们就有了一个贪心的做法,对于每条边把其两端相连的点的较小权值加入答案中。不难证明这样的操作序列一定存在。
我做的题也不是很多,所以只要见到一道我觉得新奇的题目可能就会在这里记下来,神牛请无视。
这道题我觉得是一个比较好的题目,先说说题目大意吧。题目中给了你一个图,每个点上有权值,每次可以消除一个图中的点及与该点有关系的边,其代价为当前与该点直接相连的所有点权值之和。求出一个操作的序列,使得总代价最小。(只要求输出总代价,不用输出操作序列)
首先,如果从点的角度考虑,那么本题将变得非常难做。这个时候,我们不妨换一个角度考虑,就是从边出发。
每一条边只会消除一次,那一次操作这条边贡献的代价即为这条边连接的两个顶点中后被删除的点的权值。
这样我们就有了一个贪心的做法,对于每条边把其两端相连的点的较小权值加入答案中。不难证明这样的操作序列一定存在。
//CF437C #include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<cstring> #include<vector> #include<ctime> #include<queue> #include<utility> #include<cstdlib> #include<cmath> using namespace std; int n,m,in1,in2; long long w[100010],ans; int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%I64d",&w[i]); for(int i=1;i<=m;i++) { scanf("%d%d",&in1,&in2); ans+=min(w[in1],w[in2]); } printf("%I64d\n",ans); return 0; }
相关文章推荐
- CodeForces 498A Round #284 div1A(div2C) Crazy Town
- Codeforces Round #459 (Div. 2) C-The Monster (贪心)
- Codeforces Round #436 (Div. 2) D. Make a Permutation! 思维+贪心
- Codeforces Round #437 (Div. 2 C. Ordering Pizza 贪心 only two types of pizza
- Codeforces Round #437 (Div. 2 E. Buy Low Sell High 先买后卖 贪心
- Codeforces Round #334 (Div. 2)C. Alternative Thinking(贪心)
- 【Codeforces Round 330 (Div 2)E】【贪心 暴力】Edo and Magnets 给定矩形最多去除m个,最小面积矩形使得覆盖所有小矩形重心
- Codeforces Round #401 (Div. 2)B. Game of Credit Cards(贪心)
- Codeforces Round #469 (Div. 2) C Zebras【贪心】
- Codeforces Round #310 (Div. 2)-D. Case of Fugitive(贪心)
- Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) Problem D (Codeforces 828D) - 贪心
- 【Codeforces Round 336 (Div 2) C】【贪心 DP思维】Chain Reaction 每个灯塔位置为a[]破坏b[]范围所有灯塔 设置一个灯塔使得最多灯塔被保留
- Codeforces Round #342 (Div. 2) B. War of the Corporations(贪心)
- Codeforces Round #444 (Div. 2) D. Ratings and Reality Shows 贪心
- Codeforces Round #446 (Div. 2) D. Gluttony (构造 贪心)
- 【Codeforces Round 363 (Div 2) D】【环套树 贪心 脑洞】Fix a Tree 每点一出度,最小修改次数使得变为反向有根树
- Codeforces Round #296 (Div. 2) D. Clique Problem [ 贪心 ]
- Codeforces Round #250 (Div. 2) 437C The Child and Toy(脑洞贪心)
- 贪心/字符串处理 Codeforces Round #291 (Div. 2) A. Chewbaсca and Number
- Codeforces Round #428 (Div. 2) B. Game of the Rows(贪心,补题)