luogu P1046 陶陶摘苹果

二次联通门 : luoguP1046

 

 

/*这个题好难.....由苹果树可知这应该是个树结构的题所以很自然的想到了用树链剖分来搞一下连边 最后查询以1为根节点的子树的权值和...从前闲的没事写着玩...
*/
#include <cstdio>
#define Max 3300void read (int &now)
{now = 0;char word = getchar ();while (word > '9' || word < '0')word = getchar ();while (word >= '0' && word <= '9'){now = now * 10 + word - '0';word = getchar ();}
}static int Hight;struct Edge
{int to;int next;
};int Edge_Count;
int edge_list[Max];
Edge edge[Max];inline void AddEdge (int from, int to)
{Edge_Count++;edge[Edge_Count].to = to;edge[Edge_Count].next = edge_list[from];edge_list[from] = Edge_Count;Edge_Count++;edge[Edge_Count].to = from;edge[Edge_Count].next = edge_list[to];edge_list[to] = Edge_Count;
}struct Point
{int size;int deep;int dis;int father;int tree_number;int End;
};struct Tree
{int l;int r;int dis;int Mid;
};Tree tree[Max];
Point point[Max];
int Count;void Dfs_1 (int now, int father)
{int pos = Count++;point[now].father = father;point[now].deep = point[father].deep + 1;for (int i = edge_list[now]; i; i = edge[i].next){if (edge[i].to == father)continue;Dfs_1 (edge[i].to, now);}point[now].size = Count - pos;
}int tree_dis[Max];void Dfs_2 (int now, int chain)
{int pos = 0;point[now].tree_number = ++Count;tree_dis[Count] = point[now].dis;for (int i = edge_list[now]; i; i = edge[i].next){if (point[edge[i].to].tree_number)continue;if (point[edge[i].to].size > point[pos].size)pos = edge[i].to;}if (pos)Dfs_2 (pos, chain);for (int i = edge_list[now]; i; i = edge[i].next){if (point[edge[i].to].tree_number)continue;Dfs_2 (edge[i].to, edge[i].to);}point[now].End = Count;
}void Tree_Build (int l, int r, int now)
{tree[now].l = l;tree[now].r = r;if (l == r){tree[now].dis = tree_dis[++Count] <= (30 + Hight) ? 1 : 0;return ;}tree[now].Mid = (l + r) >> 1;Tree_Build (l, tree[now].Mid, now << 1);Tree_Build (tree[now].Mid + 1, r, now << 1 | 1);tree[now].dis = tree[now << 1].dis + tree[now << 1 | 1].dis;
}int Tree_Query (int l, int r, int now)
{if (tree[now].l == l && tree[now].r == r)return tree[now].dis;if (r <= tree[now].Mid)return Tree_Query (l, r, now << 1);else if (l > tree[now].Mid)return Tree_Query (l, r, now << 1 | 1);elsereturn Tree_Query (l, tree[now].Mid, now << 1) + Tree_Query (tree[now].Mid + 1, r, now << 1 | 1);
}int main (int argc, char *argv[])
{for (int i = 1; i <= 10; i++)read (point[i].dis);read (Hight);for (int i = 1; i < 10; i++)AddEdge (i, i + 1);Count = 0;Dfs_1 (1, 1);Count = 0;Dfs_2 (1, 0);Count = 0;Tree_Build (1, 10, 1);printf ("%d", Tree_Query (point[1].tree_number, point[1].End, 1));return 0;
}

 

转载于:https://www.cnblogs.com/ZlycerQan/p/6805256.html

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

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

相关文章

毕业的这0111年

1.2004年&#xff0c;不知道大家对这个时间有没有感觉&#xff0c;那几年我正在读高中&#xff0c;韩寒的《三重门》席卷校园&#xff0c;同样还有郭敬明的《夏至未至》。那时候的我&#xff0c;还挣扎在温饱阶段&#xff0c;我每天吃饭的时候都想上食堂的三楼吃风味&#xff0…

Struts2_4_ActionMap与ValueStack详解_Struct2的EL及常用标签_防止表单数据重复提交

接着Struts2_3_day的讲 注:使用Struts2的< s:debug>< /s:debug>就可获取数据储存的分布图 StrutsPrepareAndExecuteFilter都会创建一个ActionContext和ValueStack对象, 所以Struts2的数据存储分为两类: ActionMap(contextMap)以及ValueStack; ActionMap中都是以m…

python快递代取系统_代取快递的变现方式,校园跑腿的经营范围有多大?

原标题&#xff1a;代取快递的变现方式&#xff0c;校园跑腿的经营范围有多大&#xff1f;进入大学&#xff0c;随着越来越多的学生加入到网购的行列。快递在学校也是堆积成山&#xff0c;高校校园快递市场也日渐红火。但往往带来的也有更多的麻烦&#xff0c;学生取快递时间变…

java 空指针异常之一。 新建的一个对象没有NEW 导致其SET属性时报错

代码&#xff1a; //会报错 Lendbook lbk;//不会报错 Lendbook lbknew Lendbook();//在这里报错lbk.setLenddate(new Date());lbk.setPersoncode(personcode);lbk.setPersonname(personname); 转载于:https://www.cnblogs.com/Ychao/p/6811648.html

我的互助小蜜圈

写在前面 从不久之前到现在&#xff0c;我的微信公众号从一个小小小阶段到了另一个小小阶段&#xff0c;非常感谢各位读者对我的信任和支持&#xff0c;当然我也是非常用心的维护这这群大佬&#xff0c;时刻想着怎样给各位大佬做好服务 &#xff0c;比如我正在溜娃&#xff0c…

设计模式_3_建造者模式

建造者模式(BuilderPattern) 内在的核心问题就是: 使用多个简单对象根据一种组合关系构造一个我们想要的复杂对象, 属于创建型模式 建造者模式的角色关系 建造者模式中总共有两种角色: 1.建造者: 负责建造每个基本组件 2.指挥者: 将建造者建造好的基本组件按照某种组合关系进…

比较两个表格的不同_两表数据的核对,WPS表格似乎更加方便容易

在EXCEL中的两个表格的数据对比&#xff0c;可能使用的方法会采用到查询语句&#xff0c;VBA之类的。显得在使用的过程显得有些复杂。在不经间发现WPS表格的功能处理此类的问题显得就比较的简单的多。查看并标识出分数相同的内容如下面的分数表&#xff0c;选择分数栏的范围&am…

6递归

1 /*2 递归函数:3 函数自己调用自己就叫递归函数4 递归可以实现循环5 递归是神,迭代是人(迭代循环)6 缺点:需要暂存大量的数据,递归次数太多会占用大量内存空间7 8 递归和迭代的区别9 迭代是循环结构 10 递归是选择结…

我的知识小密圈

写在前面从不久之前到现在&#xff0c;我的微信公众号从一个小小小阶段到了另一个小小阶段&#xff0c;非常感谢各位读者对我的信任和支持&#xff0c;当然我也是非常用心的维护这这群朋友&#xff0c;时刻想着怎样给大家做好服务 &#xff0c;比如我正在溜娃&#xff0c;隔断时…

设计模式_4_原型模式(对象的拷贝)

原形模式(PrototypePattern, 创建型模式,创建重复对象且保证性能, 对象的克隆) 通常使用原型模式创建一个原型接口, 用于获取创建对象的克隆, 对于浅拷贝与深拷贝不用纠结, 他们二者的区别就在于重写Clonable的clone方法 浅拷贝与深拷贝 浅拷贝: 直接调用Object的clone pub…

vk_down 每次下翻丙行 c++_笔记本接口不够用?不妨试试这款Type-C拓展坞,给你7个接口用...

随着笔记本电脑越来越轻薄化&#xff0c;已经很难再布局较多的数据接口了&#xff0c;但是在办公等环境下总是需要这些接口来满足需求。就拿小新个人来说&#xff0c;使用的是小米笔记本12.5寸款的&#xff0c;该款笔记本仅有三个接口&#xff0c;分别是全功能 USB-C 接口 x 1、…

学习,才是最好的投资~

推荐语&#xff1a;我因为王小波常说而喜欢的英国哲学家罗素的一句话&#xff1a; 参差多态乃是幸福的本源。正是因为有了多种多样的行业&#xff0c;才使得我们的职业也是多种多样&#xff0c;行行出大牛&#xff01;这个世界天生就注定有人搞互联网的&#xff0c;Linux&#…

第二百四十八节,Bootstrap轮播插件

Bootstrap轮播插件 学习要点&#xff1a; 1.轮播插件 本节课我们主要学习一下 Bootstrap 中的轮播插件。 一&#xff0e;轮播 轮播插件就是将几张同等大小的大图&#xff0c;按照顺序依次播放。 基本实例。 第一步&#xff0c;给轮播器区域div设置一个id给轮播器区域div设置样…

设计模式_4_适配器模式(AdapterPattern, 多个功能的结合)

适配器模式(AdapterPattern, 结构型模式) 用最通俗的讲法就是: 将多个功能相关或不相关的接口( 你需要的接口 )放到同一个实现类里, 构造一个具有多工功能, 多特点的"异类对象" 定义 是作为多个接口之间的桥梁,结合多个独立的接口(将多个类/功能结合在一起,构建出一…

xgboost分类_XGBoost(Extreme Gradient Boosting)

一、XGBoost在Ensemble Learning中的位置机器学习中&#xff0c;有一类算法叫集成学习&#xff08;Ensemble Learning&#xff09;&#xff0c;所谓集成学习&#xff0c;指将多个分类器的预测结果集成起来&#xff0c;作为最终预测结果&#xff0c;它要求每个分类器具备一定的“…

Android技术架构演进与未来

本文阅读大约需15分钟 引言众所周知&#xff0c;Android是谷歌开发的一款基于Linux的开源操作系统&#xff0c;每年迭代一次大版本升级。 小米、华为、OPPO、VIVO、三星等各大厂商对Android原生系统进行二次开发衍生出具有各家特色的系统&#xff08;比如MIUI&#xff09;&…

Sublime Text 3插件安装方法

一&#xff1a;安装Sublime Text 3插件的方法安装package control组件&#xff0c;然后直接在线安装&#xff1a;1、按Ctrl调出console&#xff08;注&#xff1a;安装有QQ输入法的这个快捷键会有冲突的。输入法属性设置-输入法管理-取消热键切换至QQ拼音&#xff09; 2、粘贴下…

Hibernate_1_配置文件详解_基础案例_Hibernate工具类_API详解_持久化类编写规则

Hibernate( ORM框架 ) Hibernate是一个数据持久化层的ORM框架. 它通过JavaBean, 数据库中的表与自身的映射关系达到表中数据的增删改查 特性 1.对JDBC访问数据库的代码进行封装, 简化数据访问的重复性代码 2.使用反射机制完成对Bean的封装 3.轻量级框架,支持关系型数据库 核…

建筑电气工程设计常用图形和文字符号_建筑水电图纸看不懂?10年老师傅教你看图技巧,分分钟安排...

1、建筑给排水工程包括&#xff1a;给水、排水、热水、消火栓、自动喷淋等常用系统&#xff0c;其管道当中流动的是水。(其管道输送介质为水)2、给排水系统的主要功能&#xff1a;(1)建筑给水系统的任务&#xff0c;就是经济合理地将水由室外给水管网输送到装置在室内的各种配水…

Android系统架构开篇

Android系统庞大且错综复杂&#xff0c;Gityuan带领大家初探Android系统整体架构&#xff0c;一窥其全貌。一、引言本文作为Android系统架构的开篇&#xff0c;起到提纲挈领的作用&#xff0c;从系统整体架构角度概要讲解Android系统的核心技术点&#xff0c;带领大家初探Andro…