[Tyvj1114 搭建双塔]

[题目来源]:VIjos

[关键字]:动态规划

[题目大意]:用n块水晶搭建两个塔,要求双塔必须一样高,问最大能达到的高度为多少。

//============================================================================================================

[分析]:用f[i,j]表示使用前i个水晶,建起高度差为j的双塔时,较矮的那个塔的最大高度是多少。这样的话,对于每一块水晶都有三种决策,不使用,放到高塔上,放到矮塔上.而放到矮塔上会有两种情况,一是使矮塔的高度超过了高塔,二是没有超过。具体如下:
if f[1-t,j]>f[t,j] then f[t,j]:=f[1-t,j];//不使用
if f[1-t,j]>f[t,j+h[i]] then f[t,j+h[i]]:=f[1-t,j];//高塔
if j>=h[i]//判断会不会使矮塔变成高塔
 then
 begin
  if f[1-t,j]+h[i]>f[t,j-h[i]] then f[t,j-h[i]]:=f[1-t,j]+h[i];
 end//不会
 else
 begin
  if f[1-t,j]+j>f[t,h[i]-j] then f[t,h[i]-j]:=f[1-t,j]+j;
 end;//会
 这样DP就可以了。边界是f[0,0]:=0;目标是f[n,0];
//出自tyvj1114题解

//==========================================================================================================

[代码]:

View Code
 1 program Project1;
2 var
3 n: longint;
4 a, s: array[0..200] of longint;
5 f: array[0..200,0..2500] of longint;
6
7 procedure init;
8 var
9 i: longint;
10 begin
11 readln(n);
12 for i := 1 to n do read(a[i]);
13 for i := 1 to n do s[i] := s[i-1]+a[i];
14 end;
15
16 procedure work;
17 var
18 i, j: longint;
19 begin
20 fillchar(f,sizeof(f),200);
21 f[0,0] := 0;
22 for i := 1 to n do
23 for j := 0 to s[i] do
24 begin
25 if f[i-1,j] > f[i,j] then f[i,j] := f[i-1,j];
26 if f[i-1,j] > f[i,j+a[i]] then f[i,j+a[i]] := f[i-1,j];
27 if j >= a[i] then
28 if f[i-1,j]+a[i] > f[i,j-a[i]] then f[i,j-a[i]] := f[i-1,j]+a[i];
29 if j < a[i] then
30 if f[i-1,j]+j > f[i,a[i]-j] then f[i,a[i]-j] := f[i-1,j]+j;
31 end;
32 if f[n,0] > 0 then writeln(f[n,0]) else writeln('Impossible');
33 end;
34
35 begin
36 assign(input,'c:\1.in');reset(input);
37 assign(output,'c:\1.out');rewrite(output);
38 init;
39 work;
40 close(input);
41 close(output);
42 end.

 

 

转载于:https://www.cnblogs.com/procedure2012/archive/2011/11/09/2243319.html

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

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

相关文章

linux lua socket编程,CentOs 安装lua,luasocket

一、centos安装Lua3)个人在这里选择使用5.1版本的*下载wget http://www.lua.org/ftp/lua-5.1.5.tar.gz--2013-10-14 16:23:17-- http://www.lua.org/ftp/lua-5.1.5.tar.gzResolving www.lua.org... 89.238.129.35, 2a02:40:41::5Connecting to www.lua.org|89.238.129.35|:80.…

一厕难求!NASA悬赏三万五千美元,只为一个能在月球上用的马桶

全世界只有3.14 % 的人关注了爆炸吧知识来源&#xff1a;大数据文摘作者&#xff1a;刘俊寰如今逐渐步入智能生活时代&#xff0c;智能化产品也逐渐普及到我们生活中&#xff0c;有的智能马桶&#xff0c;不仅可以识别大便监测你的生活状况&#xff0c;还可以识别肛纹辨别不同身…

我很高兴地宣布我正在编写第一本官方ABP图书

掌握ABP框架通过实施软件开发最佳实践来构建可维护的 .NET 解决方案从 ABP 框架的创建者那里学习如何构建现代 Web 应用程序主要特点使用 ABP 中的最佳工具构建强大、可维护和可扩展的软件解决方案了解如何在您的 Web 应用程序中实施 SOLID 原则和领域驱动设计了解 ABP 框架如何…

python join_python join 和 split的常用使用方法

python join 和 split的常用使用方法 python join 和 split方法的使用,join用来连接字符串&#xff0c;split恰好相反&#xff0c;拆分字符串的。 1.join用法示例 >>>li [my,name,is,bob] >>> .join(li) my name is bob >>>_.join(li) my_name_is_…

原来历史人物的英文名竟然叫这些,太好笑了吧哈哈哈哈哈

全世界只有3.14 % 的人关注了爆炸吧知识我们学了这么多年的英语你有英文名字吗&#xff1f;如果有一天&#xff0c;古人穿越到了现在那么他们的英文名字是……汉武帝&#xff1a;Woody汉文帝&#xff1a;Wendy▽朱棣&#xff1a;judy▽朱熹&#xff1a;Juicy▽周瑜&#xff1a;…

From Apprentice To Artisan 翻译 19

为什么80%的码农都做不了架构师&#xff1f;>>> 上一篇 Interface Segregation Principle 接口隔离原则 Introduction 介绍 The Interface Segregation principle states that no implementation of an interface should be forced to depend on methods it does n…

Winform模拟post请求和get请求登录网站

引言最近有朋友问如何用winform模拟post请求&#xff0c;然后登录网站&#xff0c;稍微想了一下&#xff0c;大致就是对http报文的相关信息的封装&#xff0c;然后请求网站登录地址的样子。发现自己的博客中对这部分只是也没总结&#xff0c;就借着这股风&#xff0c;总结一下h…

那些上海滩的金融传奇,或许都开始于一份PPT

全世界只有3.14 % 的人关注了爆炸吧知识 我从07年开始在上海做商务PPT定制&#xff0c;从工作室一步一步到国内首家PPT定制公司&#xff0c;从电脑前到讲台前做培训&#xff0c;算是见证了中国PPT行业的发展。在我大大小小做过的项目里&#xff0c;印象最深的莫过于“靠PPT拿下…

Android 控件之RatingBar评分条

RatingBar是Adnroid中的评分条。效果挺得的 源码下载 一、概述 RatingBar是SeekBar和ProgressBar的扩展&#xff0c;用星星来评级。使用的默认大小RatingBar时&#xff0c;用户可以触摸/拖动或使用键来设置评分&#xff0c;它有俩种样式&#xff08;大、小&#xff09;&#xf…

3d目标检测_CVPR 2020 |基用于3D目标检测的层级图网络

论文&#xff1a;A Hierarchical Graph Network for 3D Object Detection on Point Clouds论文地址&#xff1a;https://www.aminer.cn/pub/5eccb534e06a4c1b26a834c7?confcvpr2020由于大多数现有的点云对象检测方法不能充分适应点云的特征(例如稀疏性)&#xff0c;所以一些关…

position定位 响应式_使用 Vue3 实现双盒子定位 Overlay

之前说过&#xff0c;使用 可以很优雅的把某个组件渲染到根节点之外的节点&#xff0c;同时使其渲染的内容不丧失响应式和对应的生命周期函数调用。那么基于此&#xff0c;用 实现相对于某一元素的 Overlay 。实际上&#xff0c;这篇文章跟 Vue3 的关系不大&#xff0c;只是通…

月薪5 千~1万的兼职你要不要?不限学历,不限男女!

全世界只有3.14 % 的人关注了爆炸吧知识你想拥有一份月薪过万的兼职吗&#xff1f;窝在家里就行的那种&#xff1f;这就有一份看起来高大上、实则难度系数并不高的英语翻译&#xff01;兼职英语翻译到底有多赚钱&#xff1f;水平一般的英语笔译员一周7天每天拿出2小时翻译&…

【分享】154页微软WPF官方手册(含.NETCore和.NET Framwork双版本)

物联网IOT多场景概念落地&#xff0c;带火了WPF招聘&#xff0c;像阿里影视、百度地图、小米小鹏特斯拉都在高薪抢WPF人才了。机智的.NET开发者去关注学习WPF的时候却发现&#xff0c;市面上真的太缺WPF优秀的教程了&#xff0c;还好这里有最权威最详尽的微软官方pdf教程&#…

ln -s 的一个坑

为什么80%的码农都做不了架构师&#xff1f;>>> 事情是这样的&#xff0c;今天在ssh到iphone上将一个应用内目录软链接配置到用户目录下时&#xff0c;执行了如下命令&#xff1a; cd /var/mobile/Applications/9E13D9B8-63E0-49A5-82CE-6DB914495EC1/Documentsmkd…

知乎高赞:这个开挂神器简直了!

全世界只有3.14 % 的人关注了爆炸吧知识对于工作学习中常要用到PPT的人来说&#xff0c;每当谈起PPT&#xff0c;是否都会出现以下印象&#xff1a;[买模板]→[改PPT]→[粘贴复制]→[应付领导][操作繁琐]→[体力劳动]→[熬夜]→[加班]从什么时候开始&#xff0c;PPT从一个 表达…

性能再提升70%?大咖前瞻带你揭开.NET6的神秘面纱!

本月初微软官宣 .NET6 的RC1即将在11月正式发布&#xff0c;这意味着 .NET6 正式版跟我们见面的时间又近了一步。在之前的 .NET6 预览版本中&#xff0c;微软加入了大量新功能特性&#xff0c;而在最终版本中将不再额外加入新的内容&#xff0c;只对现在的内容进行进一步性能优…

JMS : Java Message Service (Java消息服务)之一 [转]

为什么80%的码农都做不了架构师&#xff1f;>>> 1 引言1.1 编写目的本文作为B2bi项目中开源产品JORAM的使用指导文档&#xff0c;旨在帮助项目组人员方便明了的进行JMS模块的详细设计和开发工作。本文档主要包含建设银行EAI平台B2Bi子系统中使用的开源JMS产品??J…

在床上玩手机,千万不能把手机放下!

1 当你在床上玩手机时▼2 据说兔子都是大长腿▼3 真是凭实力单的身▼后续▼4 这不是怕你不信嘛▼5 不看监控真不知道他咋上去的▼6 听说&#xff0c;他们已经没有暑假了▼7 感觉有被冒犯到▼你点的每个赞&#xff0c;我都认真当成了喜欢

python浪漫代码_五行Python代码实现批量抠图

你是否曾经想将某张照片中的人物抠出来&#xff0c;然后拼接到其他图片上去&#xff0c;从而可以即使你在天涯海角&#xff0c;我也可以到此一游&#xff1f;专业点的人使用 PhotoShop 的“魔棒”工具可以抠图&#xff0c;非专业人士可以使用各种美图 APP 来实现&#xff0c;但…

日常使用Git,这些问题你遇到过吗?

GitHub 作为世界上最大的代码托管平台&#xff0c;几乎所有的开发者都有个 GitHub 的账号。因为无论对于开发者还是普通用户来讲&#xff0c;GitHub 上面都有不少优质开源项目可以借鉴和学习。其受欢迎程度还体现在&#xff0c;越来越多的人会主动优化自己的 GitHub 主页&#…