hdu 3016 Man Down

题意:给你n个板子,初始100生命,到达每个板子加血或者扣血,求从最上面的板子落到地面的最优解

题解:对于每一个木板,只有从左下或者从右下,所以从下往上来看,到达第n个木板的最优解为 dp[n] = max(dp[l],dp[r]) + value[n]

  l 和 r 为n的左右端点下方的木板序号,然后,维护一个线段树,当一个木板计算完毕后,维护木板左端点到木板右端点的叶子节点的值为木板的序号(把下方的木板或者地板都盖住了!!)

 

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#define CLR(a,b) memset(a,b,sizeof(a))
using namespace std;
#define maxn 100010
int tree[maxn<<2];
int dp[maxn];struct Node
{int l,r,h,val;
}node[maxn];bool cmp(Node a,Node b)
{return a.h < b.h;
}void PushUp(int rt)
{;
}void Build(int l,int r,int rt)
{
//    cout<<l<<" "<<r<<endl;tree[rt] = 0;if( r == l ){return ;}int m = (r+l)>>1;Build(l,m,rt<<1);Build(m+1,r,rt<<1|1);PushUp(rt);
}void PushDown(int rt)
{if(tree[rt]){tree[rt<<1] = tree[rt];tree[rt<<1|1] = tree[rt];}tree[rt] = 0;
}void Update(int L,int R,int c,int l,int r,int rt)
{if( l >= L && r <= R ){tree[rt] = c;return ;}int m = (r+l)>>1;PushDown(rt);if(L<=m) Update(L,R,c,l,m,rt<<1);if(R>m)  Update(L,R,c,m+1,r,rt<<1|1);PushUp(rt);
}int Query(int L,int l,int r,int rt)
{if( l == L && r == L){return tree[rt];}int m = (r+l)>>1;PushDown(rt);if(L<=m) return Query(L,l,m,rt<<1);if(L> m) return Query(L,m+1,r,rt<<1|1);
}int main()
{int n;
//    freopen("in.txt","r",stdin);while(scanf("%d",&n)!=EOF){Build(1,maxn,1);CLR(dp,0);for(int i=1;i<=n;i++)scanf("%d%d%d%d",&node[i].h,&node[i].l,&node[i].r,&node[i].val);sort(node+1,node+1+n,cmp);for(int i=1;i<=n;i++){int l = Query(node[i].l,1,maxn,1);int r = Query(node[i].r,1,maxn,1);dp[i] = max(dp[l],dp[r]) + node[i].val;Update(node[i].l,node[i].r,i,1,maxn,1);}dp[n]+=100;if(dp[n]<=0)printf("-1\n");elseprintf("%d\n",dp[n]);}return 0;
}

 

转载于:https://www.cnblogs.com/Tokisaki-Kurumi-/p/8669978.html

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

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

相关文章

主机做服务器共享文件,主机做文件共享服务器

主机做文件共享服务器 内容精选换一换用户要使用CSG&#xff0c;首先要注册一个华为云帐号&#xff0c;才有访问华为云资源的权限。目前CSG服务处于公测阶段&#xff0c;需要申请公测并通过审核才能使用&#xff0c;商用后自动开通。此外为确保用户能正确快速使用CSG服务&#…

java nosql_使用NoSQL实现实体服务–第4部分:Java EE

java nosql现在&#xff0c;我已经准备好了一个框架式的合同优先型Web服务&#xff0c;并使用Ektorp和CouchDB创建了一个数据访问层 &#xff0c;是时候将它们连接到一个可以正常工作的实体服务中了 。 为此&#xff0c;我将使用Java EE和Glassfish 3.1。 值得注意的是&#xf…

iOS安装CocoaPods的详细步骤

之前的文章没有说明如何安装CocoaPods&#xff0c;现在向大家一一说明&#xff1a; 1.升级ruby环境 应该输入&#xff1a;$ sudo gem update --system sudo是强制升级 2.更换ruby镜像 首先先移除现有ruby镜像&#xff1a;终端输入&#xff1a;$ gem sources --remove https://r…

i7怎么老是显示无服务器,i7处理器真有这么差?网友:懂电脑的人都不买!

大家都知道i7处理器的性能非常强劲&#xff0c;但是很多人买电脑时却选择i5或者AMD的&#xff0c;这是为什么&#xff1f;仅仅是价格原因么&#xff1f;可是为什么即使是预算足够&#xff0c;那些懂电脑的人也不会去选择I7处理器&#xff0c;难道名声在外的i7处理器真有这么差&…

JQuery入门

jQuery基础语法 $(selector).action() 查找标签 选择器 id选择器&#xff1a; $("#id") 标签选择器&#xff1a; $("tagName") class选择器&#xff1a; $(".className") 配合使用&#xff1a; $("div.c1") // 找到有c1 class类的div…

Java应用程序的令牌认证

建筑物身份管理&#xff0c;包括身份验证和授权&#xff1f; 尝试Stormpath&#xff01; 我们的REST API和强大的Java SDK支持可以消除您的安全风险&#xff0c;并且可以在几分钟内实现。 注册 &#xff0c;再也不会建立auth了&#xff01; 2016年5月12日更新&#xff1a;构建…

mac 远程ftp服务器文件共享,mac 远程ftp服务器文件

mac 远程ftp服务器文件 内容精选换一换云堡垒机配置了FTP/SFTP远程备份&#xff0c;报请检查服务器密码或网络连接情况错误&#xff0c;不能启动远程备份。选择备份具体某一天日志&#xff0c;提示备份正在执行&#xff0c;但远程服务器未接收到该备份文件。原因一&#xff1a;…

ConcurrentHashMap 源码分析

https://weibo.com/6515091862/G9DawzK9fhttps://weibo.com/6515091862/G9D6x1kQrhttps://weibo.com/6515091862/G9Bo8oRCp 1. 前言 终于到这个类了&#xff0c;其实在前面很过很多次这个类&#xff0c;因为这个类代码量比较大&#xff0c;并且涉及到并发的问题&#xff0c;还有…

lambda ::_Lambda项目:迈向多核及超越

lambda ::周一下午在JavaOne 2011的希尔顿旧金山大宴会厅B上做了“ Project Lambda&#xff1a;迈向多核和超越”&#xff08;会议27400&#xff0c;不要与Brian Goetz的同名演讲相混淆&#xff09; 的演示 。大宴会厅关闭&#xff0c;这是一个非常大型的非主题演讲场地&#x…

Java 8:默认方法解析规则

随着Java 8中默认方法的引入&#xff0c;一个类现在可以从多个位置&#xff08;例如另一个类或接口&#xff09;继承相同的方法。 在这种情况下&#xff0c;可以使用以下规则来确定选择哪种方法&#xff1a; 类或超类方法声明始终优先于默认方法 否则&#xff0c;将使用具有最…

Log4j 2使用教程二 【详解】

配置Log4j 2的配置可以通过4种方式中的1种完成&#xff1a;1、通过使用XML&#xff0c;JSON&#xff0c;YAML或属性格式编写的配置文件。 2、以编程方式&#xff0c;通过创建一个ConfigurationFactory和配置实现。 3、以编程方式&#xff0c;通过调用配置界面中公开的API将组件…

firstJava

import java.util.Date;/*** Created by Administrator on 2018/3/30.*/ public class Test {public static void main(String[] args) {System.out.println("强调自主练习");new Date();} } 转载于:https://www.cnblogs.com/fengdaren/p/8675148.html

将Java EE Monolith雕刻成微服务

在介绍了为什么微服务应该由事件驱动的简介博客之后&#xff0c;我想采取一些其他步骤&#xff0c;并在有关博客的同时准备我即将进行的一系列演讲&#xff08;请参阅jBCNconf和Red Hat Summit&#xff0c;旧金山 &#xff09;。 在Twitter christianposta上关注我&#xff0c;…

【终结版】C#常用函数和方法集汇总

C#里面的常用的函数和方法非常重要&#xff0c;然而做题的时候会经常忘记这些封装好的方法&#xff0c;所以我总结一下 C#常用函数和方法集。 【1】C#操作字符串的常用使用方法 在 C# 中&#xff0c;您可以使用字符数组来表示字符串&#xff0c;但是&#xff0c;更常见的做法是…

hadoop hdfs (java api)

简单介绍使用java控制hdfs文件系统 一、注意namenode端访问权限&#xff0c;修改hdfs-site.xml文件或修改文件目录权限 本次采用修改hdfs-site.xml用于测试&#xff0c;在configuration节点中添加如下内容 <property><name>dfs.permissions.enabled</name>&l…

glassfish_重写到边缘–充分利用它! 在GlassFish上!

glassfish现代应用程序开发的一个重要主题是重写。 自从Java Server Faces引入和Java EE 6中新的轻量级编程模型以来&#xff0c;您一直在努力使用漂亮&#xff0c;简单&#xff0c;可添加书签的URL。 PrettyFaces已有一段时间了&#xff0c;即使我可以说服它在3.3.3版本中被称…

BZOJ 4557 JLOI2016 侦查守卫 树形dp

题目链接&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id4557 题意概述&#xff1a; 给出一棵树&#xff0c;每个点付出代价w[i]可以控制距离和它不超过d的点&#xff0c;现在给出一些点&#xff0c;问控制这些点的最小代价是多少。 分析: 观察一下数据范围发现…

Java6上开发WebService

Java6上开发WebService 2010-01-23 16:19:00 标签&#xff1a;Java6 WebService 休闲 职场 版权声明&#xff1a;原创作品&#xff0c;如需转载&#xff0c;请与作者联系。否则将追究法律责任。 近日朋友问起Java开发WebService的问题&#xff0c;于是为其写了一份简单说明&…

在spring中该如何使用DTO,以及DTO和Entity的关系

1. DTO是用于将后台的数据结构&#xff08;javaBean&#xff09;转换为对用户友好的表现方式的数据结构&#xff0c;同时也能防止后台数据直接传送到前台而存在的潜在危险。 2. 可以时候要哪个springbot框架提供的转换器接口&#xff1a; org.springframework.core.convert.con…

带有Kafka和ZeroMQ的分布式类星体演员

因此&#xff0c;您已经有了使用actor的精美设计&#xff0c;选择了JVM和Quasar在该主题上的强大而忠实的观点。 所有明智的决定&#xff0c;但是在集群上进行分配时您有什么选择呢&#xff1f; 星系 Galaxy是一个非常酷的选择&#xff1a;快速的内存中数据网格&#xff0c;针…