P11378[GESP202412 七级]燃烧 题解
闲话
花了一个小时。
主要原因:条初始值硬控我半小时,题目看错硬控我半小时(悲)。
正文
看题目,就是求从哪个点出发所得到的所有单调下降序列的总长度最长(这个描述好奇怪,不过意思是对的)。
题目中说的是树,但其实可以当做图来做,因为题目中提到的是“节点”,而与父亲儿子节点无关,也就是说儿子节点也可以访问父亲节点。
大体思路:先输入,其中若有一条边 $(1,2)$,则在 $1$ 与 $2$ 的边中都要加入它,也就是当成无向图来做。
然后就是求最大值。
如何求最大值呢,其实每个点的最大值就是其所有值小于其本身的点的最大值的总和。然后再求每个点的最大值就可以了。
另外还要加个记忆化,记录每个点的答案的最大值,再打擂台即可 A。
总感觉我的方法过于非主流。
AC 代码
#include<bits/stdc++.h>//万能头
using namespace std;//标准命名空间
using ll = long long;//【不开longlong见祖宗】,当然这题随便
const ll N=1e5+1;//n<=100000$
vector<ll> t[N];//存储节点、邻接点
ll n,x,a,b;//临时输入变量
ll ans[N],last_ans;//存储答案
ll work(ll i)//计算编号为i的点的答案
{
ll not_all=1;//自己算一个节点
for(ll j=1;j<ll(t[i].size());++j)//循环访问与自己有边的节点
if(t[i][0]>t[t[i][j]][0])//严格小于
{
if(!ans[t[i][j]]) ans[t[i][j]]=work(t[i][j]);//如果没有计算过就当场计算
not_all+=ans[t[i][j]];//加和计算
}
return not_all;//返回该点的值
}
int main()
{
scanf("%lld",&n);//输入节点数
for(ll i=1;i<=n;++i)//是n个点
{
scanf("%lld",&x);
t[i].push_back(x);//存储自己的值
}
for(ll i=1;i<n;++i)//注意是n-1条边,因为是树
{
scanf("%lld%lld",&a,&b);
t[a].push_back(b);//父亲节点与儿子节点 ,所以存储
t[b].push_back(a);//当成无向图处理 ,所以存储
}
for(ll i=1;i<=n;++i)//计算n个点的答案
if(!ans[i])//如果在算其它点时没有算过再计算
ans[i]=work(i);//计算
for(ll i=1;i<=n;++i)//打擂台——
last_ans=max(last_ans,ans[i]);//——求最大值
printf("%lld\n",last_ans);//输出
return 0;//完结撒花
}
P11378[GESP202412 七级]燃烧 题解的更多相关文章
- Codeforces Round #545 Div1 题解
Codeforces Round #545 Div1 题解 来写题解啦QwQ 本来想上红的,结果没做出D.... A. Skyscrapers CF1137A 题意 给定一个\(n*m\)的网格,每个 ...
- 洛谷P1496 火烧赤壁【题解】
事先声明 本题解文字比较多,较为详细,算法为离散化和差分,如会的大佬可以移步去别处看这道题的思路(因为作者比较懒,不想新开两个专题). 题目简要 给定每个起火部分的起点和终点,请你求出燃烧位置的长度之 ...
- AlloyRenderingEngine燃烧的进度条
写在前面 Github: https://github.com/AlloyTeam/AlloyGameEngine HTML 5新增了progress标签,那么再去使用AlloyRenderingEn ...
- 【Pyrosim案例】02:简单燃烧
1 案例说明 本案例介绍一个简单的燃烧模拟. 本案例通过指定热释放率(Heat Release Rate,HRR)来定义一个500kW的燃烧火焰.利用热释放率来定义燃烧火焰在火灾安全工程中描述火焰的一 ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
随机推荐
- python 属性装饰器和对应的setter方法,属性的封装和安全性控制
当我们在类中定义属性时,通常希望能够对属性的读取和写入进行控制,以确保数据的完整性和安全性.属性装饰器和对应的setter方法提供了一种实现属性封装和安全性控制的方法. 属性装饰器是Python的一种 ...
- 如何安装eNSP
如何安装eNSP? eNSP是需要三个插件进行辅助的,所以先下三个插件,最后在下eNSP 首先来看看Wireshark的安装 很简单,基本上就直接下一步就行 这里直接下一步 这里要注意,这些要么安装在 ...
- `->` 操作符重载的注意事项
在 C++ 中,-> 操作符可以被重载,用于对象的指针成员访问. 重载后的 -> 操作符主要用于模拟指针访问行为,常见于智能指针的实现等复杂场景. -> 操作符重载后的调用触发流程: ...
- WeiXin.Export.20211230
C# 在PC上的通过蓝牙(bluetooth)发送数据到手机 将.net framework 4 部署在docker中的全过程(支持4.0 到 4.8,3.5应该也可以) .Net Core Http ...
- 【官宣】2024 DTC数据技术嘉年华全议程发布:汇聚行业精英,共襄年度盛宴
龙腾四海内,风云际会时.由墨天轮数据社区和中国数据库联盟(ACDU)主办的第十三届数据技术嘉年华 将于2024年4月12日至13日在北京新云南皇冠假日酒店盛大召开.本次大会的主题是"智能·云 ...
- C#/.NET/.NET Core优秀项目和框架2024年9月简报
前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍.功能特点.使用方式以及部分功能截图 ...
- docker容器中启动tomcat应用
Dockerfile FROM tomcat:8.5.46-jdk8-openjdk-slim COPY ecs-console.war /usr/local/tomcat/webapps/ ENV ...
- Exchange学习非常有用的网站
Exchange学习非常有用的网站 https://docs.microsoft.com/zh-cn/exchange/plan-and-deploy/deployment-ref/network-p ...
- Sentinel简单使用(1)
使用场景 在微服务架构中,服务之间会进行大量的调用.为了防止某个服务被过多的请求压垮,导致整个系统崩溃,就需要对流量进行控制.同时,当某个服务出现故障时,为了防止故障扩散到整个系统,需要进行熔断操作. ...
- js常用函数 _01 关于 model()、substr() 和 正则表达式的使用
js常用函数 _01 关于 model().substr() 和 正则表达式的使用 1.model() Bootstrap 模态框(Modal)插件 模态框(Modal)是覆盖在父窗体上的子窗体.通常 ...