LightOJ 1004 Monkey Banana Problem (DP 数字三角形)

工业互联网工控安全与工业质检AI大模型建设方案.pptx 立即下载
1004 - Monkey Banana Problem
Time Limit: 2 second(s)Memory Limit: 32 MB

You are in the world of mathematics to solve the great "MonkeyBanana Problem". It states that, a monkey enters into a diamond shaped twodimensional array and can jump in any of the adjacent cellsdown fromits current position (see figure). While moving from one cell to another, themonkey eats all the bananas kept in that cell. The monkey enters into the arrayfrom the upper part and goes out through the lower part. Find the maximumnumber of bananas the monkey can eat.

Input

Input starts with an integer T (≤ 50),denoting the number of test cases.

Every case starts with an integer N (1 ≤ N ≤100). It denotes that, there will be2*N - 1 rows. The ith(1 ≤ i ≤ N) line of nextN lines contains exactlyinumbers. Then there will beN - 1 lines. The jth (1≤ j < N) line containsN - j integers. Each number isgreater than zero and less than 215.

Output

For each case, print the case number and maximum number ofbananas eaten by the monkey.

Sample Input

Output for Sample Input

2

4

7

6 4

2 5 10

9 8 12 2

2 12 7

8 2

10

2

1

2 3

1

Case 1: 63

Case 2: 5

Note

Dataset is huge, use faster I/O methods.


题目链接:http://lightoj.com/volume_showproblem.php?problem=1004


题目大意:求从上往下路径的最大权值。

解题思路:数字三角形的变形,把菱形分为上下两部分求即可。dp[i][j]表示路径到第i行第j个点的最大权值和。
首先输入正三角,j=1时:dp[i][j] = dp[i-1][j];
     j=n时:dp[i][j] = dp[i-1][j-1];
     j=2~n-1: dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]);
然后输入倒三角,dp[i][j]=max(dp[i-1][j],dp[i-1][j+1]);

代码如下:

#include <cstdio>
#include <algorithm>
using namespace std;
int a[102][102],dp[102][102];
int main()
{
    int i,j,t,n,cnt=0;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(i=1;i<=n;i++)
            for(j=1;j<=i;j++)
            scanf("%d",&a[i][j]);
        dp[1][1]=a[1][1];
        for(i=2;i<=n;i++)
            for(j=1;j<=i;j++)
            {
                if(j==1)
                    dp[i][j]=a[i][j]+dp[i-1][j];
                else if(j==n)
                    dp[i][j]=a[i][j]+dp[i-1][j-1];
                else
                    dp[i][j]=a[i][j]+max(dp[i-1][j-1],dp[i-1][j]);
            }
        for(i=n-1;i>=1;i--)
            for(j=1;j<=i;j++)
                scanf("%d",&a[i][j]);
        for(i=n-1;i>=1;i--)
            for(j=1;j<=i;j++)
                dp[i][j]=a[i][j]+max(dp[i+1][j],dp[i+1][j+1]);
        printf("Case %d: %d\n",++cnt,dp[1][1]);
    }
    return 0;
}


跨厂商网络设备的RADIUS认证:Windows NPS的兼容性与最佳实践 本文详细探讨了Windows NPS在多厂商网络环境中的RADIUS认证实践,特别针对华为、华三、思科等主流设备的兼容性问题提供解决方案。从基础配置到高级优化,涵盖VSA属性映射、认证协议选择及安全加固措施,帮助企业实现统一身份认证并提升网络安全性。 阅读详情

相关推荐

聚类分析(超全超详细版)

聚类分析是一种典型的无监督学习, 用于对未知类别的样本进行划分,将它们按照一定的规则划分成若干个类族,把相似(距高相近)的样本聚在同一个类簇中, 把不相似的样本分为不同类簇,从而揭示样本之间内在的性质以及相互之间的联系规律 聚类算法在银行、零售、保险、医学、军事等诸多领域有着广泛的应用 聚类分析基础 聚类分析的概念 聚类分析是根据在数据中发现的描述对象及其关系的信息,将数据对象分组。目的是...

Gfqwy2021 22万+

hdoj1069 Monkey and Banana(Java版)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 题目大意:给你n种能翻转的的石头,问你这些石头能叠起来的最大高度,每种石头无限。 因为这题要求上一块石头的x,y要严格小于底下的石头,所以每一种石头的每一种形态只能用一次 每一块石头有6中形态,也就是6种长宽高的全排列方式。将6n块石头的长度进行从小到大的排列 这样相当于在求6n块石头高度的最大...

仰望星空的博客 311

【分享】获取微信通讯录python代码形式实现

微信号”, “昵称”, “地区”, “备注”, “标签”, “签名”, “来源”5. 找到最后一个空格所在的位置(后一个就是真正的联系人了)当前微信号与上一个相同的时候,说明到底部了,可以跳出循环。3. 滚动鼠标到最顶部(防止已经滚动了一部分了)7.记录下上一个联系人的微信号。7. 无限循环按键盘下箭头。获取详情中的以下元素内容。6. 点击第一个联系人。4. 获取联系人列表。

程序员老狼专注开发aigc或客服系统应用 2892

LightOJ 1004 Monkey Banana Problem

LightOJ 1004 题意: 题目给了一张地图,地图上的数字表示猴子走到这点后能够取得的香蕉数目,猴子只能从自己当前位置向下一行的相邻位置转移,求得到最多的香蕉的数量 这道题跟数字三角形是一个意思的,只是这道题的走的图形不是一个三角形而是菱形,菱形相当于一个正的三角形和一个倒着的三角形拼接而成的。 我们来看菱形的上部分,用dp[i][j]表示在i,j位置得到的最大的香蕉数量.

KANEKI的博客 311

初探Proxmox Datacenter Manager:统一管理多集群与单节点的利器

本文介绍了Proxmox Datacenter Manager (PDM) 这一统一管理工具,它能有效解决多套Proxmox VE环境(包括集群和单节点)管理碎片化的痛点。文章详细阐述了PDM的核心功能、安装部署步骤,并通过实战演示了如何添加单节点与整个集群,实现资源的集中监控与基础运维,为运维人员提供了高效的集中管理解决方案。

weixin_29217235的博客 159

STM32解析航模遥控器的PPM信号

使用STM32对航模遥控器的PPM信号进行解析

qq_44343584的博客 9733

LightOJ 1004 Monkey Banana Problem (线性dp 数字菱形)

1004 - Monkey Banana Problem PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB You are in the world of mathematics to solve

Tc的专栏 1174

Python爬虫教程:抓取Android或iOS应用中的数据

随着智能手机的普及,移动应用程序已经成为我们生活中不可或缺的一部分。从社交媒体、在线购物到金融服务和健康管理,几乎所有领域都有相应的手机应用程序(App)服务用户。而这些应用程序通常会存储大量的数据,例如用户行为、产品信息、订单记录等。如果我们能有效地抓取这些数据,可以为数据分析、商业智能、用户行为分析等提供有力支持。本文将重点介绍如何使用Python爬虫技术抓取Android或iOS应用中的数据,尤其是如何从这些应用的后端接口、存储、或网页中提取数据。我们将探讨如何通过反向工程技术访问移动应用中的API接

2201_76125261的博客 800

Lightoj 1004 - Monkey Banana Problem

题目链接:http://acm.hust.edu.cn/vjudge/contest/121396#problem/F http://lightoj.com/volume_showproblem.php?problem=1004 密码:acm 分析:求从上往下路径的最大权值。 解题思路:数字三角形的变形,把菱形分为上下两部分求即可。dp[i][j]表示路径到第i行第j个点的最大...

weixin_30871701的博客 105

编程助手:CLAUDE.md 与 AGENTS.md 完全指南

AI编程助手配置文件指南 为解决AI编程助手在陌生项目中面临的运行、规范、架构等问题,本文提出两种配置文件: CLAUDE.md(根目录): 面向通用AI(如ClaudeCode) 包含项目命令、代码风格、架构说明等结构化信息 示例:启动命令:npm run dev,代码规范:TypeScript禁用any AGENTS.md(任意目录): 面向智能编码工具(如Cursor) 支持模块级配置(如微前端子应用) 示例:前端测试命令:npm test:web,API请求规范 与传统README.md的区别: 人

分享AI、区块链技术及应用,未来已来 1246

【unity实战】Spline 插件让物体沿路径 “丝滑” 走位,实现火车沿轨道移动——Spline 插件的使用

Unity Spline系统教程:实现火车轨道移动 摘要:本文介绍了Unity Spline系统的核心功能与实战应用,通过火车轨道移动案例演示了完整开发流程。内容包括:1)安装Spline包并绘制样条线轨道;2)调整样条节点和曲线弧度;3)使用Spline Instantiate组件实例化轨道模型;4)通过Spline Animate组件实现小车自动沿轨移动;5)补充讲解了轨道闭合、分支节点、循环模式等进阶技巧。该系统可用于创建河流、摄像机路径等多种曲线应用,文中提供了官方文档链接和详细操作步骤,适合Uni

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1823

Codeforces Round #338 (Div. 2) B. Longtail Hedgehog

B. Longtail Hedgehog time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard output This Christmas Santa gave Masha a magic picture and a pencil. The pic

ysCover 3万+

Python爬虫实战【房产刚需专属】:爬取链家/贝壳完整房源数据,精准筛选刚需房源【房价+户型+地段+面积+装修】

本次爬虫的核心亮点就是刚需专属筛选,我已经把刚需买房的主流筛选逻辑封装为独立函数,你只需要修改筛选参数,就能精准匹配你的需求无需懂Python语法,直接改数字/文字即可!本次爬虫是刚需买房+Python爬虫实战的完美结合。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1821

P1990 覆盖墙壁

你有一个长为N宽为2的墙壁,给你两种砖头:一个长2宽1,另一个是L型覆盖3个单元的砖头。如下图: 0  0 0  00 砖头可以旋转,两种砖头可以无限制提供。你的任务是计算用这两种来覆盖N*2的墙壁的覆盖方法。例如一个2*3的墙可以有5种覆盖方法,如下: 012 002 011 001 011 012 112 022 011 001 注意可以使用两种砖头混合起来覆盖,如2*4的墙可以这

ysCover 1474

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

LightOJ 1231 Coin Change (I) (背包计数模板题)

1231 - Coin Change (I) PDF (English) Statistics Forum Time Limit: 1 second(s) Memory Limit: 32 MB In a strange shop there are n types of coins of valueA1, A

ysCover 1043

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Codeforces 518D Ilya and Escalator

D. Ilya and Escalator time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Ilya got tired of sports programming,

ysCover 1026

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LightOJ 1047 Neighbor House (DP 数字三角形变形)

1047 - Neighbor House PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Limit: 32 MB The people of Mohammadpur have decided to paint each ofth

ysCover 841

noj 1860 保研(01背包 概率dp)

C. 保研 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 171            测试通过 : 40  题目描述     对于一些名校而言,保研不仅可以由学校推免,也可以由学生自己向希望保研的学校提出申请,这个过程有点类似于外国学生向学校提交简历等待Offer的过程。但是,投递

ysCover 818

poj 1088 滑雪(线性DP)

滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 81553   Accepted: 30437 Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升

ysCover 748

hdu 1231 最大连续子序列(DP)

最大连续子序列 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 21166    Accepted Submission(s): 9387 Problem Description 给定K个整数的序列{ N1, N2

ysCover 728

poj 2250 Compromise(裸LCS DP)

Compromise Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6766   Accepted: 3023   Special Judge Description In a few months the European Currency Union

ysCover 702

P1616 疯狂的采药

题目描述 Description LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同种类的草药,采每一种都需要一些时间,每一种也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩

ysCover 686

poj 3624 Charm Bracelet

Charm Bracelet Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25370   Accepted: 11418 Description Bessie has gone to the mall's jewelry store and spies a

ysCover 672

poj 1836 Alignment (DP LIS)

Alignment Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13839   Accepted: 4478 Description In the army, a platoon is composed by n soldiers. During the m

ysCover 601

hdu 1087 Super Jumping! Jumping! Jumping!(DP)

Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 25057    Accepted Submission(s): 11073 Problem De

ysCover 587

hdu 1506 Largest Rectangle in a Histogram (DP)

Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 12947    Accepted Submission(s): 3653 Problem Des

ysCover 558
上一篇: poj 1836 Alignment (DP LIS)
下一篇: LightOJ 1047 Neighbor House (DP 数字三角形变形)
雨狮子
博客等级 码龄12年 24粉丝 185原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值