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 ...
随机推荐
- APP专项测试之兼容性测试
1.APP 兼容性测试认识 随着 APP 应用范围越来越广,用户群体越来越大,终端设备的型号也越来越多,移动终端碎片化加剧,使得 APP 兼容性测试成为测试质量保障必须要考虑的环节. APP 兼容性测 ...
- MyBatis——案例——环境准备
配置文件完成增删改查 准备环境 数据库表 tb_brand -- 创建tb_brand表 create table tb_brand( id int primary k ...
- I found that CTH has no RP when i tried to reduce his RP
- Diffusion系列 - DDPM 公式推导 + 代码 -(二)
Denoising Diffusion Probabilistic Model(DDPM)原理 1. 生成模型对比 记 真实图片为 \(x_0\),噪声图片为 \(x_t\),噪声变量 \(z\sim ...
- axios有没有做过⼀些业务封装?
啊,有的,在项⽬⾥⾯我主要是封装过axios的拦截器部分 我在请求拦截器⾥⾯做了注⼊全局token的事情,这个事⼉是因为有很多接⼝都需要这个token来做数据 鉴权,为了避免书写多次 统⼀配置了⼀下 ...
- Android复习(四)权限—>定义自定义应用权限
定义自定义应用权限 本文档介绍了应用开发者如何使用 Android 提供的安全功能来定义自己的权限.通过定义自定义权限,应用可以与其他应用共享其资源和功能.如需详细了解权限,请参阅权限概览. 背景 A ...
- npm install报错 Error: EACCES: permission denied
报错内容 Unable to save binary /root/packageadmin/spring-boot-admin-2.1.6/spring-boot-admin-server-ui/no ...
- Minecraft小说
小说标题:<方块与冒险:勇者的传说> 持续更新中 故事简介: 主角艾伦(Alan)是一个普通的玩家,偶然之间被传送到Minecraft的世界中.这个世界充满了各种各样的奇迹.冒险.危险和谜 ...
- JS 通过年份获取月,季度,半年度,年度
原文请关注公众号 "酒酒酒酒",关注公众号 回复 "JS 通过年份获取月,季度,半年度,年度" 可获取源代码 功能描述: 实例化一个函数,给函数内传递不同的 ...
- SHA1withRSA签名Python版本
from Crypto.PublicKey import RSA from Crypto.Signature import PKCS1_v1_5 from Crypto.Hash import SHA ...