洛谷P3237 米特运输
题目链接
题意:
中文题,挺好理解。就是让节点的权值等于各子节点权值之和,然后每个子节点的权值相等,原本每个点有一个权值,通过最少次的修改(可以修改成小数)使其满足要求。
分析:
题意一旦读明白,题什么的就简单起来了。。。首先,我们这样思考,如果我要让x节点权值不变,那么其他节点的权值都能求处来,然后判断有几个相等的就可以了,只不过是这样的话枚举节点要n次dfs,所有我们换一种思路,如果这个节点和某个节点可以“互存”(同时不改变权值),那么他们使得根的最后的值将会是一样的,反过来说,他们使得的根的值一样,那么他们可以互存也是对的(即这两句话等价),然后我们就可以直接判断不变x根节点的值将会是多少,怎么判断呢,只要判断从这里到根节点要乘多少(这个数字比较好算),然后再乘上本身的权值,只是这样下去爆long long,没有关系,换python解决问题。。。开玩笑的。。。,取个对数就好了。然后最后的答案就是n-可以“共存”的最多的节点。
然后就是代码
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn=+;
double v[maxn];
double f[maxn];
struct E{
int to;
int next;
E(){
to=next=;
}
}ed[maxn*];
int head[maxn];
int tot;
void J(int a,int b){
tot++;
ed[tot].to=b;
ed[tot].next=head[a];
head[a]=tot;
}
double son[maxn];
void Dfs(int x,int fa){
f[x]=son[fa]+f[fa];
for(int i=head[x];i;i=ed[i].next){
if(ed[i].to==fa)
continue;
son[x]+=;
}
son[x]=log(son[x]);
for(int i=head[x];i;i=ed[i].next)
if(ed[i].to!=fa)
Dfs(ed[i].to,x);
}
double ans[maxn];
long long ans_1[maxn];
long long ans_2[maxn];
int ans_3[maxn];
int ha[maxn];
int main(){
int n;
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&v[i]);
int js1,js2;
for(int i=;i<=n-;i++){
scanf("%d%d",&js1,&js2);
J(js1,js2);
J(js2,js1);
}
Dfs(,);
for(int i=;i<=n;i++){
v[i]=log(v[i]);
ans[i]=f[i]+v[i];
ans_1[i]=ans_2[i]=ans[i]*1e6;//精度的处理
}
sort(ans_2+,ans_2++n);//离散化
int gs=unique(ans_2+,ans_2++n)-ans_2-;
for(int i=;i<=n;i++)
ans_3[i]=lower_bound(ans_2+,ans_2++gs,ans_1[i])-ans_2;
for(int i=;i<=n;i++)
ha[ans_3[i]]++;
int ma=;
for(int i=;i<=gs;i++)
ma=max(ha[i],ma);
printf("%d",n-ma);
return ;
}
洛谷P3237 米特运输的更多相关文章
- 洛谷P3237 米特运输 [HNOI2014] hash/二进制分解
正解:hash/二进制分解 解题报告: 传送门! umm首先提取下题意趴QAQ 大概是说给一棵树,每个点有一个权值,要求修改一些点的权值,使得同一个父亲的儿子权值相同,且父亲的权值必须是所有儿子权值之 ...
- 洛谷 P3237 [HNOI2014]米特运输 解题报告
P3237 [HNOI2014]米特运输 题目描述 米特是\(D\)星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题. \(D\)星上有 ...
- 【题解】【洛谷 P1967】 货车运输
目录 洛谷 P1967 货车运输 原题 题解 思路 代码 洛谷 P1967 货车运输 原题 题面请查看洛谷 P1967 货车运输. 题解 思路 根据题面,假设我们有一个普通的图: 作图工具:Graph ...
- 【题解】洛谷P1967 [NOIP2013TG] 货车运输(LCA+kruscal重构树)
洛谷P1967:https://www.luogu.org/problemnew/show/P1967 思路 感觉2013年D1T3并不是非常难 但是蒟蒻还是WA了一次 从题目描述中看出每个点之间有许 ...
- 洛谷P3237 [HNOI2014]米特运输(树形dp)
解题报告 题干 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题. D星上有N个城市,我们将其顺序编号为1到N,1号城市为首都. ...
- 洛谷P3237 [HNOI2014]米特运输
题目描述 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储 存一直是一个大问题.D星上有N个城市,我们将其顺序编号为1到N,1号城市为首都.这N个 ...
- 洛谷 P3237 [HNOI2014]米特运输
题面链接 get到新技能当然要来记录一下辣 题意:给一棵树,每个点有一个权值,要求同一个父亲的儿子的权值全部相同,父亲的取值必须是所有儿子的权值和,求最少的修改数量 sol:自己瞎鸡巴yy一下可以发现 ...
- 洛谷P1772 [ZJOI2006]物流运输 题解
题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪. ...
- 洛谷P1772 [ZJOI2006]物流运输
P1772 [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线 ...
随机推荐
- hadoop启动后,9000端口无法连接,netstat -tpnl中找不到该端口
已解决: 需要重新格式化hdfs. 1.停止hdfs: 2.删除hdfs的相关文件目录(hdfs-site.xml中配置的存放文件的目录). 3.启动journalnode:sbin/hadoop-d ...
- iOS-字典转模型(单模型)的实现
用模型取代字典的好处 使用字典的坏处 一般情况下,设置数据和取出数据都使用“字符串类型的key”,编写这些key时,编译器不会有任何友善提示,需要手敲, eg:dict[@"name&quo ...
- Hook踩坑记:React Hook react-unity-webgl
自公司前后分离上手React以来,一个坑一个坑的踩,Class的全生命周期云里雾里,还么屡明白,就抱上了Hook的大腿不松手,确实爽到飞起.修改到Hook的过程基本比较顺畅,直接少了三分之一的代码,组 ...
- HashMap源码和并发异常问题分析
要点源码分析 HashMap允许键值对为null:HashTable则不允许,会报空指针异常: HashMap<String, String> map= new HashMap<&g ...
- 深入理解 nth-child 和 nth-of-type 的区别
ele:nth-of-type(n) 为什么叫 of-type ,就是说它是以“type”来区分的,也就是说ele:nth-of-type(n)指的是父元素下第n个ele元素. ele:nth-ch ...
- 使用matlab进行图像处理的一些常用操作和tip
本人还是习惯使用Python语言,有时候不得不使用matlab的时候就变得举步维艰,下面记录一下使用matlab进行图像处理的一些常用操作以及代码,方便之后查阅: 1. 图像的读取 %% 读取原图像 ...
- vim中的替换操作
在vim中 :s(substitute)命令用于查找并替换字符串.使用方法如下: :s/<find-this>/<replace-with-this>/<flags> ...
- ZooKeeper使用入门
ZooKeeper简介 ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,是Hadoop的子项目之一.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式 ...
- 个人工作用SQL短句,不定时更新
表字段操作 --一.修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 add constr ...
- JMeter+Grafana+Influxdb搭建可视化性能测试监控平台(使用了docker)
[运行自定义镜像搭建监控平台] 继上一篇的帖子 ,上一篇已经展示了如何自定义docker镜像,大家操作就行 或者 用我已经自定义好了的镜像,直接pull就行 下面我简单介绍pull下来后如何使用 拉取 ...