P9755 [CSP-S 2023] 种树

news/2025/10/31 17:11:50/文章来源:https://www.cnblogs.com/kklxy/p/19180601

思路

这道题看到所有c为0,那么所有树的生长时间就是确定的,那么就可以贪心的把生长时间长的先种上。
那么对于c不为0,我们考虑二分答案,二分完答案后,我们考虑对于每个树把他最晚种上的合法时间算出来,然后按照上面的贪心做就做完了。
不要写了一个函数不调用啊

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll a[100005], b[100005], c[100005];
inline __int128 sol(ll x, ll l, ll r)
{__int128 ret = (r - l + 1) * b[x];__int128 res = (r - l + 1);res *= l + r;res /= 2;res *= c[x];if (c[x] == 0){return ret;}if (c[x] > 0){return ret + res;}ll im = (1 - b[x]) / c[x];if (im < l){return r - l + 1;}if (im > r){return ret + res;}ret = (im - l + 1) * b[x];res = (im - l + 1);res *= l + im;res /= 2;res *= c[x];res += r - im;return ret + res;
}
int fa[100005];
vector<int> g[100005];
void dfs(ll x, ll f)
{fa[x] = f;for (auto v : g[x]){if (v == f){continue;}dfs(v, x);}
}
void write(__int128 x)
{if (x < 10){ll t = x % 10;cout << t;return;}ll t = x % 10;write(x / 10);cout << t;
}
int n;
int t[100005], p[100005];
bool cmp(int x, int y)
{return t[x] < t[y];
}
int dis[100005];
inline bool chk(ll x)
{// cout << x << "\n";for (int i = 1; i <= n; i++){if (sol(i, 1, x) < a[i]){return 0;}dis[i] = -1;p[i] = i;ll l = 1, r = n, rt = 0;while (l <= r){ll mid = (l + r) >> 1;if (sol(i, mid, x) >= a[i]){rt = mid;l = mid + 1;}else{r = mid - 1;}}t[i] = rt;// cout << t[i] << " \n"[i == n];}// for (int i = 1; i <= n; i++)// {//     write(sol(i, t[i], x));//     cout << " \n"[i == n];// }sort(p + 1, p + n + 1, cmp);dis[0] = 0;ll ntm = 0;for (int i = 1; i <= n; i++){ll nid = p[i];vector<int> v;while (dis[nid] == -1){v.push_back(nid);nid = fa[nid];}reverse(v.begin(), v.end());for (auto j : v){// cout << j << " " << ntm + 1 << "\n";dis[j] = ++ntm;}}for (int i = 1; i <= n; i++){// cout << dis[i] << " \n"[i == n];if (dis[i] > t[i]){return 0;}}return 1;
}
int main()
{ios::sync_with_stdio(0), cin.tie(0);cin >> n;for (int i = 1; i <= n; i++){cin >> a[i] >> b[i] >> c[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);int l = 0, r = 1e9;int ans = -1;while (l <= r){int mid = (l + r) >> 1;if (chk(mid)){r = mid - 1;ans = mid;}else{l = mid + 1;}}cout << ans << "\n";return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/952009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

登录后编码错误提示处理

ssh登陆后提示以下错误 -bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory -bash: 警告:setlocale: LC_ALL: 无法改变区域设置 (en_US.UTF-8):没有那个文件或目录…

2025 升降机厂家最新推荐权威榜单!附协会测评数据与核心优势深度解析

引言 在自动化生产、物流仓储等领域需求驱动下,升降机市场规模持续扩大,但产品质量合格率仅 78% 的行业现状,让采购者面临严峻选型挑战。工程机械工业协会高空作业机械分会联合第三方机构开展的 2025 年度测评显示,…

【ArcMap】修改选中路线的属性表的列名

将选中路线属性表中的列名 BZ_1修改为 BZimport arcpytry:# 获取当前地图中的所有图层mxd = arcpy.mapping.MapDocument("CURRENT")layers = arcpy.mapping.ListLayers(mxd)# 查找第一个线图层target_layer …

钢结构实力厂家排名前十:2025年权威评测 : 探索顶级厂家的核心优势与选择指南

摘要 钢结构行业近年来快速发展,得益于其建设周期短、跨度大、抗震性强和环保节能等优势,广泛应用于高铁站、机场、体育场馆等大型工程。随着2025年建筑行业智能化转型,钢结构厂家竞争加剧,本文基于市场调研和用户…

审计组件

目录背景和价值2. 为什么不建议切DAO层?记录变更日志的方案 - 半自动化方案一、核心设计:敏感信息变更流水表(快照表)二、实现思路:业务变更时自动记录快照1. 标记敏感实体/字段(明确需要记录的信息)2. 快照记录…

vscode launch.json debug 带caffe库的工程代码

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations&q…

PADS丨出 gerber 通用教程

目录一、出 gerber 通用教程二、出 gerber 常见问题 一、出 gerber 通用教程将原点设置在板子左下角。输入无模命令“@camdocs”或者选择“文件 --> CAM --> 自动定义”。将所有电气层(即所使用的2层 4层 6层 8…

jmeter阶梯试压测

插件:jmeterplungins-standard.jar放到jmeter安装目录\lib\ext路径下,重启jmeter启动jmeter 添加线程组jp@gc-Stepping Thread GroupThis group wil start 100 threads:设置线程组启动的线程总数为100个; First,wait…

实用指南:UNIX下C语言编程与实践20-UNIX 文件类型判断:stat 结构 st_mode 与文件类型宏的使用实战

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

uni-app x开发商城系统,社区图片,左侧结构样式,数据渲染,点击高亮

一、概述 上一篇文章,已经实现了联系我们,地图显示,拨打电话。 接下来,实现社区图片,左侧结构样式,效果如下: 二、scroll-view 可滚动视图区域。用于区域滚动。 官方文档:https://uniapp.dcloud.net.cn/compon…

Nginx的请求处理

本文分享自天翼云开发者社区《Nginx的请求处理》.作者:小谢不用谢 Nginx的请求处理流程worker进程中,ngx_worker_process_cycle()函数就是这个无限循环的处理函数。在这个函数中,一个请求的简单处理流程如下:(1)…

2025年液相色谱仪口碑推荐优质厂家,国产仪器品牌哪家强?

在当今科技飞速发展的时代,液相色谱仪作为分析检测领域的重要工具,其质量和性能对于科研、制药、环境监测等众多行业至关重要。2025年,市场上液相色谱仪品牌众多,而国产仪器品牌也在不断崛起,其中北京普析通用仪器…

【MySQL】数据库基础 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

云湖+小马算力:无需懂技术,轻松知识库AI智能机器人

注册小马算力:https://www.tokenpony.cn/3N6Rdu3e 注册完毕进入后台开通API keys在云湖APP中,创建机器人点击【机器人设置】开启大模型机器人选项,模型类型选择其他模型可以访问:https://www.tokenpony.cn/#/model…

2025年深圳geo优化服务公司权威推荐榜单:geo优化公司/geo优化推广/ai排名优化源头公司精选

在当前AI技术快速发展的背景下,生成式引擎优化(GEO)已成为企业获取AI搜索流量的核心手段。据行业数据显示,2025年全球AI搜索用户规模已突破8亿,超过60%的搜索请求会触发AI摘要回答,未能被AI采纳内容的品牌将面临…

2025年架空电缆源头厂家权威推荐榜单:屏蔽电缆/防火电缆/矿物质电缆源头厂家精选

随着全球电力网络升级与新能源并网需求激增,2025年架空电缆市场正迎来技术升级与产能扩张的双重浪潮。高质量架空电缆已成为保障电网安全、提升输电效率的核心要素。 架空电缆作为电力传输的"空中动脉",其…

hello-gui

hello-guiimport("stdfaust.lib"); ctFreq = hslider("[0]cutoffFrequency",500,50,10000,0.01) hslider 的第一个参数是参数的名称,因为它将在界面中显示或在API中使用(它可以不同于与UI元素关…

异常的处理

新版本的C#支持nullable功能,如果一个可空的对象,没有进行空值判断的话,IDE会有报警提示。 借助下面的一些特性标识,能够进行null值的判断。 对函数内引用的属性进行异常判断 通过ArgumentNullException.ThrowIfNu…

银河麒麟服务器操作系统 V10 (Lance) 安装docker 28

银河麒麟服务器操作系统 V10 (Lance) 安装docker 28银河麒麟服务器操作系统 V10 (Lance) 安装docker 28 编辑 复制银河麒麟服务器操作系统 V10 Docker安装 在银河麒麟服务器操作系统 V10 (Lance) 上安装 Docker 28.0.1…

Python创建类(下)_ 当上帝的时刻到了

Python创建类(下)_ 当上帝的时刻到了class Student: def __init__(self, name, student_id): self.name = name self.student_id = student_id self.grades = {"语文": 0, "…