HLG 1004 The Triangle(数塔问题DP)

本文介绍了一个使用动态规划(DP)算法解决三角形路径最大和问题的实例。通过阅读本教程,读者可以了解如何将问题分解为更小的子问题,并通过迭代计算得出最优解。

The Triangle

点击打开题目链接

Time Limit: 1000 MSMemory Limit: 65536 K
Total Submit: 571(236 users)Total Accepted: 287(221 users)Rating:Special Judge: No
Description
7
3   8
8   1   0
2   7   4   4
4   5   2   6   5

(Figure 1)
Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right.
 
Input

Your program is to read from standard input.

For each test case, the first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100. The numbers in the triangle, all integers, are between 0 and 99.

Process to the end of file.

Output

For each test case, your program is to write to standard output. The highest sum is written as an integer.

Sample Input

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

Sample Output

30



简单的DP题,求从root到达三角形底部的任意一个位置的sum和最大的值。

化为小的问题:(dp[i,j]代表达到第i行第j个数的sum的最大值)

代码:

#include <iostream>
#include<string.h>
#include<stdio.h>
#define N 110
#define max(a,b) a>b?a:b
using namespace std;
int a[N][N];
int main()
{
    int n;
    int dp[N][N],i,j,ans;
    while(~scanf("%d",&n))
    {
        for(i=0;i<n;i++)
        {
            for(j=0;j<=i;j++)
            scanf("%d",&a[i][j]);
        }
        dp[0][0]=a[0][0];
        for(i=1;i<n;i++)
        {
            dp[i][0]=dp[i-1][0]+a[i][0];
            for(j=1;j<i;j++)
            {
                dp[i][j]=max(dp[i-1][j]+a[i][j],dp[i-1][j-1]+a[i][j]);
            }
            dp[i][j]=dp[i-1][j-1]+a[i][j];
        }
        ans=0;
        for(i=0;i<n;i++)
        {
            ans=max(ans,dp[n-1][i]);
        }
        cout<<ans<<endl;
    }
    return 0;
}


YUV颜色空间与HLG(Hybrid Log-Gamma)高动态范围技术在视频处理中具有一定的协同作用。YUV是一种将图像或视频信号分解为亮度(Y)和色度(U、V)分量的颜色空间。这种分离有助于在传输和压缩过程中优化亮度和色度信息的处理,因为人眼对亮度变化的敏感度高于对色度变化的敏感度。因此,YUV格式被广泛应用于视频编码和广播系统中,如H.264、HEVC等标准[^1]。 HLG是一种高动态范围(HDR)技术,旨在提供更宽的亮度范围,从而增强图像的对比度和细节表现力。与传统的SDR(Standard Dynamic Range)相比,HLG能够呈现更真实的亮部和暗部细节,使图像看起来更加生动和自然。HLG技术通过使用一种特殊的伽玛曲线(Log-Gamma),能够在不增加额外元数据的情况下实现HDR效果,这使得它特别适合于实时广播和视频传输[^2]。 在实际应用中,YUV颜色空间与HLG技术可以结合使用以提高视频的质量。例如,在HDR视频编码过程中,视频信号通常首先被转换为YUV颜色空间,其中亮度分量(Y)可以应用HLG技术来扩展动态范围,而色度分量(U、V)则可以根据需要进行适当的处理和压缩。这种方法不仅能够保持视频的高质量,还能有效地减少数据传输所需的带宽[^1]。 此外,由于HLG技术不需要额外的元数据,它与现有的视频传输和接收设备兼容性更好。这意味着,在使用YUV颜色空间进行视频处理时,通过引入HLG技术,可以在不显著改变现有基础设施的情况下实现HDR视频的制作和播放。 综上所述,YUV颜色空间与HLG技术在视频处理中的结合,不仅能够提升视频的视觉效果,还能够适应当前视频传输和接收设备的要求,为用户提供更加优质的观看体验。 ```python # 示例代码:假设我们有一个函数用于转换视频信号到YUV颜色空间并应用HLG技术 def convert_to_YUV_and_apply_HLG(video_signal): # 转换视频信号到YUV颜色空间 yuv_video = convert_to_YUV(video_signal) # 应用HLG技术到亮度分量 hlg_yuv_video = apply_HLG(yuv_video['Y']) # 合并处理后的亮度分量与未处理的色度分量 final_video = merge_YUV(hlg_yuv_video, yuv_video['U'], yuv_video['V']) return final_video # 假设的转换函数 def convert_to_YUV(signal): # 实现RGB到YUV转换逻辑 pass # 假设的应用HLG函数 def apply_HLG(y_component): # 实现HLG技术到亮度分量 pass # 假设的合并YUV分量函数 def merge_YUV(y, u, v): # 合并YUV分量形成最终视频 pass ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值