HLG2035广搜

本文介绍了一种基于地图能量值的算法,通过分析Diablo火焰蔓延路径与英雄逃脱策略,探讨了英雄如何在限定距离内避开Diablo的攻击。
Diablo
Time Limit: 1000 MSMemory Limit: 65536 K
Total Submit: 42(21 users)Total Accepted: 23(20 users)Rating: Special Judge: No
Description

Diablo是地狱中的三大魔王之一,有着非常强大的破坏力,Diablo期望着可以将一切都投入到地狱之中。为了不让Diablo的计划得逞,一位英雄决定挺身而出,试图击败Diablo。DIablo喜欢把眼前的区域变成一片火海,Diablo吐出火焰的蔓延是有一定规律的,火焰总是会向能量较低的区域蔓延。英雄如果不想被Diablo击败的话,就需要在Diablo喷出火焰的一瞬间逃到火焰烧不到的地方,但是他只能在这一瞬逃出3个单位长度的距离。现在我们给出现场的一个地图,并且给出Diablo和英雄所在的位置,我们要知道英雄是否可以逃脱Diablo的攻击。(火焰蔓延方向只能是上、下、左、右)

Input
本题有多组测试数据,对于每组数据第一行输入6个非负整数,分别表示地图的长、宽(分别对应m、n),Diablo的坐标以及英雄的坐标。接下来n行每行输入m个数,表示地图上每个点的能量值(值在32位有符号整数范围内)。m、n值均不大于100,且我们保证数据合理合法。
Output
如果英雄可以逃脱Diablo的攻击,输出Hero will be back并换行,否则输出Diablo win并换行。
Sample Input

3 3 0 0 2 2
5 4 1
4 3 2
3 2 1

 

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

Sample Output

Diablo win

Hero will be back

 

Hint
我们来看看第二组样例数据,Diablo所处的位置是(0, 0),那么Diablo在地图上左上角的点,其能量值为5。英雄所在的位置是(2, 3),也就是我们看到地图上第三行第四列的位置,其能量值为3。不过火焰只能从能量高的地方向能量低的地方蔓延,尽管英雄处在的位置能量值较低,但是火焰却无法蔓延到这里,因为有能量相对较高的地势阻隔。假设英雄所在的位置能被火焰蔓延到,他只需在3步内找到一个火焰不可达的合法区域即可躲过攻击。
Source
2014 Winter Holiday Contest 5
Author
杨和禹

 

 

 

 

 

 

 

代码

 

 

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
int m,n;
int a[105][105],book[105][105],b[105][105];
struct node
{
    int x;
    int y;

} que[30000];
int pd(int endx,int endy)
{
    for(int i=0; i<=3; i++)
       {

       for(int j=3-i; j>=0; j--)
            {for(int k=0; k<=3; k++)
            {
                int mx,my;
                if(k==0)
                {
                    mx=i;
                    my=j;
                }
                else if(k==1)
                {
                    mx=-i;
                    my=j;
                }
                else if(k==2)
                {
                    mx=i;
                    my=-j;
                }

                else
                {
                    mx=-i;
                    my=-j;
                }

                if(endx+mx>=0&&endx+mx<=m-1&&endy+my>=0&&endy+my<=n-1&&b[endx+mx][endy+my]==0)
                    return 0;

            }}}
    return 1;
}
int main()
{
    int startx,starty,endx,endy;
    while(scanf("%d%d%d%d%d%d",&n,&m,&startx,&starty,&endx,&endy)!=EOF)
    {
        memset(a,0,sizeof(a));
        memset(book,0,sizeof(book));
        for(int i=0; i<m; i++)
            for(int j=0; j<n; j++)
                scanf("%d",&a[i][j]);
        int next[4][2]= {1,0,0,-1,-1,0,0,1};
        int head=1,tail=1;
        que[head].x=startx;
        que[head].y=starty;

        book[startx][starty]=1;
        b[startx][starty]=1;
        tail++;
        int flag=0;
        while(head<tail)
        {
            for(int k=0; k<4; k++)
            {
                int tx=que[head].x+next[k][0];
                int ty=que[head].y+next[k][1];
                if(tx<0||tx>m-1||ty<0||ty>n-1)
                    continue;
                if(book[tx][ty]==0&&a[tx][ty]<a[startx][starty])
                {
                    que[tail].x=tx;
                    que[tail].y=ty;
                    b[tx][ty]=1;
                    book[tx][ty]=1;
                    tail++;
                }
                if(tx==endx&&ty==endy)
                {
                    flag=1;
                }
            }
            head++;
        }
        if(flag==1&&pd(endx,endy))
        {

            printf("Diablo win\n");
        }
        else if(startx==endx&&starty==endy)
        {
             printf("Diablo win\n");
        }
        else
            printf("Hero will be back\n");
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/13224ACMer/p/4428912.html

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、付费专栏及课程。

余额充值