题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3573


屁话一堆,就是说:

1.一棵树中的每个点的每个儿子的权值之和要等于这个点的权值

2.一棵树中的每个点的每个儿子的权值相等。

所以,考虑确定一个点即确定的整个树的每个点的权值,但是我们受限于数据范围又不能枚举每一个点,所以枚举每一个点,考虑这个点的权值不变的话根节点的权值会是多少,这个是可以DP的,然后取个众数即可。

当然,权值过大所以需要一发HASH。


 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<cstdlib>
#include<cmath>
#include<cstring>
using namespace std;
#define maxn 501000
#define llg long long
#define md1 1000000007
#define md2 1000000009
#define yyj(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
llg n,m,du[maxn],ans,tail,val[maxn];
vector<llg>a[maxn];
struct node
{
llg v1,v2;
}dl[maxn]; bool cmp(const node a,const node&b) {if (a.v1==b.v1) return a.v2<b.v2;else return a.v1<b.v1;} void init()
{
cin>>n;
for (llg i=;i<=n;i++) scanf("%lld",&val[i]);
for (llg i=;i<n;i++)
{
llg x,y;
scanf("%lld%lld",&x,&y);
a[x].push_back(y); du[x]++;
}
} void dfs(llg x,llg fa,llg v1,llg v2)
{
llg w=a[x].size();
dl[++tail].v1=(v1*val[x])%md1;
dl[tail].v2=(v2*val[x])%md2;
v1*=du[x],v2*=du[x];
v1%=md1,v2%=md2;
for (llg i=;i<w;i++)
{
dfs(a[x][i],x,v1,v2);
}
} int main()
{
yyj("a");
init();
dfs(,,,);
sort(dl+,dl+tail+,cmp);
ans=n;
for (llg l=;l<=tail;l++)
{
llg r=l;
while (r+<=tail)
{
if (dl[l].v1!=dl[r+].v1 || dl[l].v2!=dl[r+].v2) break;
r++;
}
ans=min(ans,n-(r-l+));
}
cout<<ans;
return ;
}

【BZOJ】3573: [Hnoi2014]米特运输的更多相关文章

  1. bzoj 3573: [Hnoi2014]米特运输

    3573: [Hnoi2014]米特运输 Description 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题.    D星 ...

  2. bzoj 3573: [Hnoi2014]米特运输【树形dp+瞎搞】

    阅读理解题,题意是以1为根的有根树,每个点有点权,求修改最少点权能使每个点的权值等于其所有子节点权值之和并且每个点的所有子节点权值相等的个数 然后就比较简单了,就是有个技巧是数太大,需要对所有操作都取 ...

  3. 3573: [Hnoi2014]米特运输 - BZOJ

    Description米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题.    D星上有N个城市,我们将其顺序编号为1到N,1号 ...

  4. BZOJ_3573_[Hnoi2014]米特运输_树形DP+hash

    BZOJ_3573_[Hnoi2014]米特运输_树形DP+hash 题意: 给你一棵树每个点有一个权值,要求修改最少的权值,使得每个节点的权值等于其儿子的权值和且儿子的权值都相等. 分析: 首先我们 ...

  5. 洛谷 P3237 [HNOI2014]米特运输 解题报告

    P3237 [HNOI2014]米特运输 题目描述 米特是\(D\)星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题. \(D\)星上有 ...

  6. Luogu 3237 [HNOI2014]米特运输

    BZOJ 3573 发现当一个点的权值确定了,整棵树的权值也会随之确定,这个确定关系表现在根结点的总权值上,如果一个点$x$的权值为$v$,那么一步步向上跳后,到根节点的权值就会变成$x*$每一个点的 ...

  7. 【bzoj3573】[HNOI2014]米特运输

    题目描述 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题.D星上有N个城市,我们将其顺序编号为1到N,1号城市为首都.这N个城 ...

  8. BZOJ3573:[HNOI2014]米特运输(树形DP)

    Description 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储 存一直是一个大问题.D星上有N个城市,我们将其顺序编号为1到N,1号城市 ...

  9. 【bzoj3573】[HNOI2014]米特运输 树形dp

    题目描述 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题.D星上有N个城市,我们将其顺序编号为1到N,1号城市为首都.这N个城 ...

随机推荐

  1. oracel中合并报表的sql

    select decode(dt.LATN_ID ,290,'西安','910','咸阳',911,'延安',912,'榆林',913,'渭南',914,'商洛',915,'安康', 916,'汉中' ...

  2. docker 常用操作

    1,安装 .检查内核版本,必须是3.10及以上 uname ‐r .安装docker yum install docker .输入y确认安装 .启动docker [root@localhost ~]# ...

  3. 数据分析之pandas02

    DataFrame 一.DataFrame DataFrame是一个[表格型]的数据结构.DataFrame又按一定顺序排列的多列数据组成,设计初衷是将Series的使用场景从一维扩展到多维.Date ...

  4. 如何将OpenCV中的Mat类绑定为OpenGL中的纹理

    https://blog.csdn.net/TTTTzTTTT/article/details/53456324 如果要调用外接的USB摄像头获取图像通常使用OpenCV来调用,如何调用摄像头请参考本 ...

  5. 为了好好看球,学霸们用深度学习重建整个比赛3D全息图

    http://mp.ofweek.com/vr/a745673021206 周四晚上11点,万众瞩目的世界杯终于开踢了,虽然意大利.荷兰.智利.中国(手动滑稽)等强队没能进入本届世界杯,但C罗梅西谁主 ...

  6. 使用Selenium+firefox抓取网页指定firefox_profile后的问题

    from: https://blog.csdn.net/chufazhe/article/details/51145834 摘要:在使用selenium和firefox抓取网页指定firefox_pr ...

  7. django 获取错误信息

    https://blog.csdn.net/xxm524/article/details/48369623

  8. NATS—协议详解(nats-protocol)

    NATS的协议是一个简单的.基于文本的发布/订阅风格的协议.客户端连接到 gnatsd(NATS服务器),并与 gnatsd 进行通信,通信基于普通的 TCP/IP 套接字,并定义了很小的操作集,换行 ...

  9. phpstorm激活大全--持续更新(支持2018最新版)

    方法一. 通过Licence Server 激活PHPStorm(快速) 方法原理是通过搭建服务器激活,不过网上有许多搭建好的. http://idea.goxz.gq http://v2mc.net ...

  10. 【题解】Luogu P4391 [BOI2009]Radio Transmission 无线传输

    原题传送门 这题需要用到kmp匹配 推导发现: 设循环节的长度为x,那么kmp数组前x个都是0,后面kmp[x+n]=n 先求出kmp数组 答案实际就是len-kmp[len] #include &l ...