数字三角问题

【java】三角形(Object 类与异常处理) 【案例问题】平面三角形有三个属性:三条边的长度(假设称为 sideA, sideB, sideC)。为了简化问 题的处理,我们假设三边长度均为整型,且 sideA 阅读详情

动态规划的三角问题


  • 问题描述:如下数字三角
                                 7
                              3   8
                           8   1   0
                        2   7   4   4
                     4   5   2   6   5
               计算出从三角形的顶到低的一条路径,使得路径经过的数字和最大。

  • 代码:
/*************************************************************************
    > File Name: numbre_triangle.c
    > Author: zhanglp
    > Mail: 820221185@qq.com
    > Created Time: 2013年10月31日 星期四 15时37分57秒
 ************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

int trangle_num (int *arr, int n, int i, int *temp)
{
    if (i < 0)
        return 0;

    int     k = 0;
    int     s1, s2;
    int     rs;
    int     flag[i+1];
    memset ((char *)flag, 0, sizeof (flag));

    for (k = 0; k <= i; k++) {
        s1 = arr[i*(i+1)/2+k]+temp[k+1];
        s2 = arr[i*(i+1)/2+k]+temp[k];

        temp[k] = s1 > s2 ? s1 : s2;
        if (s1 > s2) flag[k] = 1;
    }

    rs = trangle_num (arr, n, i-1, temp);
    rs = rs + flag[rs];
    temp[n-i] = rs;

    return rs;
}

int main (void)
{
    int     n, i, j;
    printf ("input row : ");
    scanf ("%d", &n);

    int     arr[n*(n+1)/2];
    int     temp[n+2];
    memset ((char *)temp, 0, sizeof (temp));

    srand ((int)time(NULL));
    for (i = 0; i < 15; i++)
        arr[i] = rand () % 10;
        
    trangle_num (arr, n, 4, temp);
    for (i = 0; i < n; i++) {
        printf ("%d : ", temp[n-i+1]+1);
        for (j = 0; j <= i; j++)
            printf ("%d, ", arr[i*(i+1)/2+j]);
        printf ("\n");
    }
    printf ("max : %d\n", temp[0]);

    return EXIT_SUCCESS;
}
数字三角形问题(数塔问题) 下图给出了一个数字三角形,请编写一个程序,计算从顶至底的某处的一条路径,使该路径所经过的数字和最大 阅读详情

相关推荐

数字三角形问题(动态规划)

G . 数字三角形问题 Description 给定一个由nn行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。 对于给定的由nn行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。 Input 第1 行是数字三角形的行数nn,1≤n≤1001≤n≤100。接下来nn行是数字三角形各行中的数字。所有数字在0..99之...

Skyniliuershang的博客 1万+

写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:a,b,

import java.lang.reflect.Array; import java.util.*; public class Triangle {         public void triangle (int a,int b,int c){         try {         Scanner input1 =new Scanner (System.in);      

qq_40179404的博客 1544

C语言 动态规划&背包 数字三角形问题

数字三角形问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。    对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过

zdadan 2439

C++ 定义一个三角型类(Triangle),数据成员:三角形三边,成员函数:求面积和求周长,在主函数中测试该类。

根据三边求面积使用的是海伦公式 全代码如下: #include <iostream> #include<string> #include<cmath> using namespace std; class Triangle { private: int x,y,z; public: void printarea(); void p...

好吗好的~的技术博客 1万+

Jetson-nano 编译实时内核并烧录

前言 之前一篇文章介绍了正常的烧录过程,使用的是默认内核,实际工作中需要对内核打补丁升级为实时内核,并对其重编译。 一、准备内容 官网大法好 官方内核下载链接 官方交叉编译器下载链接 官方文档 ubuntu主机一台 根据官网选择下载对应的文件, 1、L4TDriver Package (BSP) source jetson内核文件。 2、官方交叉编译器 因为我们不是在jetson上直接编译,而jetson是arm平台,所以要进行交叉编译。 二、使用步骤 1.解压 内核 tar -xjf public_s

ldl371122的博客 3288

告别MATLAB!用Python的PYPOWER搞定电力系统潮流计算(附Case30完整代码)

本文介绍了如何从MATLAB迁移到Python,使用PYPOWER工具包进行电力系统潮流计算。通过详细的环境准备、数据接口兼容性实践、潮流计算实现及最优潮流计算进阶,帮助工程师和学生无缝过渡到Python生态。文章还展示了结果处理与可视化技巧,并附有Case30完整代码示例。

weixin_30411819的博客 300

数字三角形问题

数字三角形问题 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。    对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。 输入 输入数据的第1

sdut_jean的博客 2729

Elsevier投稿别再踩坑了!手把手教你搞定LaTeX模板和所有附件(附避坑清单)

本文详细解析Elsevier投稿全流程中的关键环节,特别是LaTeX模板的使用和系统提交的常见问题。从必备文件准备到LaTeX模板适配,再到投稿系统操作指南,提供全面的避坑清单和实用技巧,帮助科研工作者高效完成投稿,避免因格式错误或文件遗漏导致的退稿风险。

weixin_30915275的博客 552

数字三角形问题-简短

数字三角形问题 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。 对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。 Input 输入数据的第1行是数字三角形...

rwlvjj的博客 1478

别急着让AI画板!聊聊Cadence Allegro X AI和OrCAD X在实际PCB项目中的真实体验

本文分享了Cadence Allegro X AI与OrCAD X在PCB设计中的实际应用体验,探讨了AI辅助Layout的效率提升与潜在陷阱。通过高速ADC采集板案例,详细对比了AI与传统方法在电源平面分割、低速信号布线等任务中的表现,并总结了人机协作的最佳实践,为工程师提供实用参考。

weixin_30836759的博客 2219

手把手教你用STM32F103C8T6驱动HUB75 LED点阵屏(附74HC595级联代码)

本文详细介绍了如何使用STM32F103C8T6开发板驱动HUB75接口的LED点阵屏,包括硬件连接、74HC595级联代码、时序控制及灰度显示实现。通过实战案例展示动态文字显示和性能优化技巧,帮助开发者快速掌握LED点阵屏驱动技术。

weixin_42623010的博客 342

经典的数字三角问题

刚学了动态规划,数字三角问题就是动态规划的金典案例,下面来分享一下我对此案例的理解一、问题描述数字三角形。如下图所示的数字三角形,从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。编写一个程序求出最佳路径上的数字之和。【注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数。】         7       3...

Yansky的博客 2408

Mongodb操作与Java(四)MongoTemplate的使用

MongoTemplate的使用

A乐神的博客 3437
上一篇: ubuntu 开机卡住
下一篇: compiz&nbsp;config&nbsp;设置(转…
lq.kr
博客等级 码龄14年 9粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值