Day1: T3 bfs T4 树形DP

T3:BFS

回看了一下Day1的T3...感觉裸裸的BFS,自己当时居然没有看出来...

同时用上升和下降两种状态bfs即可

这一题还要注意一个细节的地方,就是题目要求的是求往返的最优解

k=min(d[上升],d[下降]);

ans=min(2*k+1,d1[]+d2[]);

输出ans..这个地方需要理解;

其余的照bfs模板打即可:

时间: 2024-08-11 07:49:15

Day1: T3 bfs T4 树形DP的相关文章

车站分级 (2013noip普及组T4)(树形DP)

题目描述 一条单向的铁路线上,依次有编号为 1,2,…,n 的 n个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 x ,则始发站.终点站之间所有级别大于等于火车站 x 的都必须停靠.(注意:起始站和终点站自然也算作事先已知需要停靠的站点) 例如,下表是 5 趟车次的运行情况.其中,前 4 趟车次均满足要求,而第 5 趟车次由于停靠了 3 号火车站( 2 级)却未停靠途经的 6 号火车站(亦为 2 级)而不满足要求.

【bzoj3362/3363/3364/3365】[Usaco2004 Feb]树上问题杂烩 并查集/树形dp/LCA/树的点分治

题目描述 农夫约翰有N(2≤N≤40000)个农场,标号1到N,M(2≤M≤40000)条的不同的垂直或水平的道路连结着农场,道路的长度不超过1000.这些农场的分布就像下面的地图一样, 图中农场用F1..F7表示, 每个农场最多能在东西南北四个方向连结4个不同的农场.此外,农场只处在道路的两端.道路不会交叉且每对农场间有且仅有一条路径.邻居鲍伯要约翰来导航,但约翰丢了农场的地图,他只得从电脑的备份中修复了.每一条道路的信息如下: 从农场23往南经距离10到达农场17 从农场1往东经距离7到达农

代码风格与树形DP

Streaming很惨,不过因为比赛之间没有提交过就没掉(或掉了)rating.第二题是一个树形DP,但是我都在想第一题了,简直作死. 看着神犇的代码我也是醉了...各种宏,真是好好写会死系列. 看到他们Tree DP都用的DFS,突然感觉我这个蒟蒻的生活中充满了无力... 我一般都喜欢用BFS进行Tree DP.这样坏处很多,难调试,容易爆空间等.好处也有,写起来快,代码短,跑得飞快,判重简单.不过这样做是有条件的,而今天的Streaming这题就是一道可以的题. 然后讲讲今天这道LCASta

HDU 4514 湫湫系列故事——设计风景线(并查集+树形DP)

湫湫系列故事——设计风景线 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 4669    Accepted Submission(s): 853 Problem Description 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形

BZOJ 2435 道路修建 NOI2011 树形DP

一看到这道题觉得很水,打了递归树形DP后RE了一组,后来发现必须非递归(BFS) 递归版本84分: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int N,point[1000003],next[2000003],v[2000003],c[2000003],cnt=0,f[1000003]; bool p[1000003]; long long sum=0; vo

HDU 4008 Parent and son LCA+树形dp

题意: 给定case数 给定n个点的树,m个询问 下面n-1行给出树边 m个询问 x y 问:以x为根,y子树下 y的最小点标的儿子节点 和子孙节点 思路: 用son[u][0] 表示u的最小儿子 son[u][2] 表示u的次小儿子 son[u][1] 表示u的最小子孙 若lca(x,y)  !=y  则就是上述的答案 若lca(x,y) == y 1.y != 1 那么最小儿子就是除了x外的节点,且此时father[y] 也是y的儿子节点, 而最小的子孙节点就是1 2.y==1 那么特殊处理

多叉树转二叉树+树形dp(codevs 1746 贪吃的九头龙 2002noi)

题目传送门 看到这个题目我们要先把问题简化了,条件中是多叉树,我们可以把它转换成二叉树,左边是儿子右边是兄弟的储存方式. 首先先判断否的部分,当总的果子小于需求,也就是N-k<M-1时输出-1. 我们再判断是的部分 如果没有大头,一定存在难受值为0的方案但是现在题目中有大头,我们就可以按按照小头的个数进行分类 1.有一个小头,我们要考虑小头和大头的难受值之和. 2.有多个小头,因为小头可以在奇偶的进行变换,所以我们只需要考虑大头的难受值. 分析到这里,我们就可以发现是树形dp我们设f[i][j]

算法提高 金属采集_树形dp

算法提高 金属采集 时间限制:1.0s   内存限制:256.0MB 问题描述 人类在火星上发现了一种新的金属!这些金属分布在一些奇怪的地方,不妨叫它节点好了.一些节点之间有道路相连,所有的节点和道路形成了一棵树.一共有 n 个节点,这些节点被编号为 1~n .人类将 k 个机器人送上了火星,目的是采集这些金属.这些机器人都被送到了一个指定的着落点, S 号节点.每个机器人在着落之后,必须沿着道路行走.当机器人到达一个节点时,它会采集这个节点蕴藏的所有金属矿.当机器人完成自己的任务之后,可以从任

(树形dp)鸡毛信问题 (fzu 1227)

http://acm.fzu.edu.cn/problem.php?pid=1227 Problem Description 大革命时期,地下党组织的联络图是一个树状结构.每个党员只和一个比他高一级的负责人单线联系,但他可以与若干个比他低一级的直接下属党员联系.紧急情况通常用鸡毛信传递.假设容易复制鸡毛信,但传递1 次鸡毛信需要1 个单位时间.试设计一个算法,计算从总负责人开始,传递鸡毛信到每个党员手中最少需要多少时间. 对于给定的地下党组织的联络图,计算从总负责人开始,传递鸡毛信到每个党员手中