链接:https://www.nowcoder.com/acm/contest/133/A
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

现在有一棵被Samsara-Karma染了k种颜色的树,每种颜色有着不同的价值

Applese觉得Samsara-Karma染的太难看了,于是打算把整棵树重新染成同一种颜色

但是,由于一些奥妙重重的原因,每一次染色Applese可以选择两个有边相连的点,将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价

现在,Applese的钱要用来买书(game),所以他想要最小化代价

输入描述:

输入包括若干行
第一行包括一个数n,表示这棵树有n个节点
第二行包括n个数,第i个数表示第i个节点的颜色coli
**注意:一个颜色的标号即价值

接下来的n - 1行,每行包括两个数u, v,表示u节点与v节点之间有一条无向边

n ≤ 100000, 1 ≤ coli ≤ 1e9,数据保证是一棵树

输出描述:

输出包括一行
第一行包括一个数,表示最小代价

示例1

输入

复制

4
2 3 4 3
1 2
2 3
3 4

输出

复制

12
#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
const int maxn = 1e5 + 100;
int c[maxn];
map<long long ,long long >mp;
int main()
{ //freopen("C://input.txt","r",stdin); int n;long long int t=0x3f3f3f3f3f3f3f3f;long long int sum=0;scanf("%d",&n);for(int i=1;i<=n;i++){int m;scanf("%d",&m);sum+=m;mp[m]++;}for(map<long long ,long long >::iterator it=mp.begin();it!=mp.end();it++){t=min(t,sum-(it->first * it->second)+ (it->first*(n-it->second)));}printf("%lld\n",t);return 0;
}

公式 某个点的总花费=总和 -  自身值*自身点出现的次数  + 自身值*其他点的个数  (自己推一下)

这里用map用来记录一个点出现的次数。

举个例子  mp[m]++;  迭代器  it ->first=m (即m自身的值)  it->second 代表mp[m](即m出现的次数)

map迭代器 it是一个指针,用  ‘->’来指向

注意  vector 的迭代器 it  可以直接用 *it  来代表其内容

一开始想用结构体 离散化来做,才发现数据范围1e9,数组开不到,只能用map。

牛客网 Wannafly挑战赛20 A-染色相关推荐

  1. 牛客网 Wannafly挑战赛8 A.小Y和小B睡觉觉

    写了一会不想写了... A-小Y和小B睡觉觉 链接:https://www.nowcoder.com/acm/contest/57/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制 ...

  2. 牛客网 Wannafly挑战赛27 蓝魔法师

    蓝魔法师 链接: https://www.nowcoder.com/acm/contest/215/C 来源:牛客网 题目描述 "你,你认错人了.我真的,真的不是食人魔."--蓝魔 ...

  3. 牛客网wannafly挑战赛13-D(贪心)

    链接:https://www.nowcoder.com/acm/contest/80/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  4. 牛客网wannafly挑战赛13-E(线段树)

    链接:https://www.nowcoder.com/acm/contest/80/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  5. 题解——牛客网Wannafly挑战赛23 B-游戏 (SG函数)

    前言 比赛的时候没学过SG函数的蒟蒻以为是道结论题,但是不是QwQ 和dummyummy巨佬一起推了快三个小时的规律 最后去问了真正的巨佬__stdcall __stdcall面带微笑的告诉我们,这是 ...

  6. 牛客网Wannafly挑战赛4 C.割草机(模拟)

    题目描述 有一块n*m的地,每块地要么长满杂草(用'W'表示),要么是空地(用'G'表示),现在有一个人站在(1,1),面向(1,m),他可以按如下两种方式移动: 1.向面朝的方向移动一格,耗费1单位 ...

  7. 牛客网Wannafly挑战赛15 B车辆安排(模拟)AND C 出队(规律)

    传送门 :B题:点我 C题: 点我 题目描述 有n个队伍,每个队伍的人数小于等于5,每辆车最多坐5个人,要求一个队伍的人都在一辆车上,求最少的车数 输入描述: 第一行n 第二行n个数,表示每个队伍的人 ...

  8. [牛客网Wannafly挑战赛24F]wyf的超级多项式

    Description 已知 F i = ∑ j = 1 k a j v j i F_i=\sum_{j=1}^{k}a_jv_j^i Fi​=∑j=1k​aj​vji​ 给出 v 1.. k v1. ...

  9. 牛客网Wannafly挑战赛29 B - 白井黑子 乱搞

    Description kuroko 作为常盘台唯一的空间系能力者,在每年例行的能力测试中可绝对不能让 misaka 失望哦,但是由于她的等级只是 level 4「大能力者」,在能力测试中会遇到不少困 ...

最新文章

  1. HTML5学习笔记二 HTML基础
  2. IROS2021|DLL直接点云定位:一种基于点云地图的航空机器人定位方法
  3. Java 10.switch语句
  4. python入门递归之汉诺塔
  5. .html好 还是.asp好,各位说说在ASP.net里 用静态函数的好 还是实例函数出处HTML好???...
  6. Chromium Embedded Framework中文文档之(基本使用)
  7. 在Ubuntu和CentOS上搭建NodeJs的执行环境步骤
  8. 科研_今天,我们怎么做科研?
  9. 如何将两段音乐合并成一段?
  10. 新零售做好客流数据分析才是提升线下商场、购物中心人流量的方向
  11. Blender 快捷键总结,一些子问题
  12. 华为光猫虚拟服务器,高兴得要哭了!!!!研究了N天,终于把我的华为 光猫救回来了...
  13. Win10分辨率不能调怎么办
  14. Apache启动失败,请检查相关配置。√MySQL5.1已启动。
  15. STM32基础12--数模转换(DAC)
  16. spider_study 1
  17. 引领5G智慧全场景 荣耀V30系列抢跑2020年市场
  18. YC创始合伙人Jessica Livingston七年经验总结:创业路上如何避开这八只拦路虎
  19. python实现自动点击桌面按钮_Python实现鼠标隔几秒自动点击电脑某区域
  20. 再谈桌面虚拟化环境中的默认配置文件与输入法

热门文章

  1. java实现简单的银行存款取款系统
  2. 做一个有时间观念的人
  3. 人见人爱A-B--set
  4. Python中Pickle模块的dump()方法和load()方法
  5. C/C++黑魔法-常量字符串连接
  6. 模拟退火算法系列之(二):一个实例
  7. 用Python进行图文识别(OCR)
  8. Ansible Playbook 变量与 register 详解
  9. Java同步器之AbstractOwnableSynchronizer详解
  10. mysql ip 查询工具_IP地址查询定位器 - 从全球最新的IP数据库查询IP详细信息