当前位置: 首页 > news >正文

Luogu P3237 [HNOI2014] 米特运输 题解 [ 蓝 ] [ 树形 DP ] [ 哈希 ]

米特运输

不是很难,但是思路很巧妙的一道题。

手模样例,观察合法方案的性质,容易发现,只要有一个节点权值是固定的,那么整棵树所有节点的权值便也固定了。

而由于每个节点之间是倍数关系,因此我们需要一个基本单位来表示倍数关系。为了方便,我们直接将权值的最大值,即根节点的权值设为基本单位,那么其余节点的系数一定形如 \(\dfrac{1}{k}\)

在得到每个节点的系数后,假设当前节点的权值为 \(x\),那么当 \(kx = a_{root}\) 的时候这两个节点的权值所对应的合法方案是一样的

由此可以想到记录每个节点的 \(k\) 值,然后乘上该点的原权值,丢进一个里,桶中最多的权值即为最终选择的权值。

因为 \(k\) 可能很大,因此需要采用哈希的思想存储。使用 map 实现桶,时间复杂度 \(O(n\log n)\)

#include <bits/stdc++.h>
#define fi first
#define se second
#define eb(x) emplace_back(x)
#define pb(x) push_back(x)
#define lc(x) (tr[x].ls)
#define rc(x) (tr[x].rs)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ldb;
using pi = pair<int, int>;
const int N = 500005;
const ll mod = 998442353;
int n;
ll a[N], b[N], ans;
map<ll, ll> tot;
vector<int> g[N];
void dfs(int u, int fa)
{if(u == 1) b[u] = 1;else if(fa == 1) b[u] = g[1].size();else b[u] = (b[fa] * (g[fa].size() - 1)) % mod;for(auto v : g[u]){if(v == fa) continue;dfs(v, u);}tot[(a[u] * b[u]) % mod]++;ans = max(ans, tot[(a[u] * b[u]) % mod]);
}
int main()
{//freopen("sample.in", "r", stdin);//freopen("sample.out", "w", stdout);ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n;for(int i = 1; i <= n; i++) cin >> a[i];for(int i = 1; i < n; i++){int u, v;cin >> u >> v;g[u].push_back(v);g[v].push_back(u);}dfs(1, 0);cout << n - ans;return 0;
}
http://www.gsyq.cn/news/31947.html

相关文章:

  • [电脑]win10下SVN图标不显示
  • 2025/10/27~2025/11/2 做题笔记 - sb
  • 完整教程:LinuxC++——etcd分布式键值存储系统入门
  • 我从哪里起飞 从哪里降落 多少不能原谅的错 却不能重来过
  • MATLAB 时间序列小波周期分析
  • 本地运行nginx服务,模拟线上环境访问项目
  • 基于Redis海量数据场景分布式ID生成实践
  • 分享精选文章合集 - 2025-10-27
  • 2025 年搅拌器搅拌设备,侧入式搅拌设备,斜插式揽拌设备,卧式搅拌设备厂家最新推荐,聚焦资质、案例、售后的五家企业深度解读
  • 2025 年环保搅拌设备,搅拌装置设备,框式搅拌设备厂家最新推荐,实力品牌深度解析采购无忧之选!
  • 2025质量可靠的义乌刺绣工厂推荐榜
  • 2025 年液压旋转接头,高温蒸汽旋转接头,通水旋转接头厂家最新推荐,精准检测与稳定性能深度解析
  • Linux基本命令篇 —— date命令
  • nef怎么转换成jpg格式你还不会?分享4个实用技巧
  • 2025年上海家电展会展台搭建服务商权威推荐榜单:展台搭建会展服务/会展展台装修设计/展台设计装修源头公司精选
  • macro出pin
  • 2025 年定制矿车,大型矿车,固定式矿车厂家最新推荐,产能、专利、环保三维数据透视
  • 2025 年 10 月翻斗式矿车,侧翻矿车,1 吨矿车,运输矿车厂家最新推荐,产能、专利、环保三维数据透视
  • 2025 年江苏电缆附件,热缩电缆附件,冷缩电缆附件,预制电缆附件厂家最新推荐,产能、专利、环保三维数据透视
  • 9 GHz 巴伦做到 22 mm,HT-BAL-0006SMG 简单上机测一波
  • 低代码开发便捷的技术深度解析
  • 2025年打篮球隐形眼镜生产商权威推荐榜单:周抛隐形眼镜/rgp隐形眼镜/硬性隐形眼镜源头厂家精选
  • 2025年浅拾兰花双萃致臻精华油:从成分与技术维度深度解析其护肤功效
  • DGX Spark(Ubuntu24.04)下编译安装OpenCV
  • 2025年移动车载变电站厂家最新推荐榜:陕西四方华能凭硬实力成优选
  • 2025年最新可靠的钣金加工厂家找哪家,知名的钣金加工口碑推荐榜睿意达专注产品质量
  • Visual Studio Code使用Python 3.6.8
  • vscode 添加代码片段中的预置变量总结
  • 251027
  • 2025年10月重庆装饰装修公司推荐排行榜:十大企业综合评测与选购指南