hdu 6447YJJ's Salesman 离散化+树状数组+DP

Python中的串口通信库pyserial(基础) pyserial是一个跨平台的库,可以在多个操作系统上使用,包括Windows、Linux和MacOS。:flushInput方法用于清除输入缓冲区中的所有数据,flushOutput方法用于清除输出缓冲区中的所有待发送数据。:PySerial允许在创建Serial对象后,通过修改对象的属性来设置串口参数,如波特率、数据位、校验位和停止位。同时,也提供了方法或属性来检查串口的状态,如是否已打开。:sendBreak方法用于向串口发送一个BREAK信号,这可以用于向连接的设备发送一个中断或重置信号。 阅读详情

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6447

因为图中点的坐标值过大,达到1e9.然而只有1e5个点。所以先将其离散化。并按照<x.y>二元组排序。每次对于同一行的点连续处理两次。

第一次:先考虑由上一行转移而来的情况:树状数组找到左上角的最大值+v、以及上方值的最大值。

第二次:考虑由同行的点转移来的情况。树状数组查询区间1~x-1的最大值

便利过程中维护最大值

代码丑的一批

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define mod 1000000007
#define For(i,m,n) for(int i=m;i<=n;i++)
#define Dor(i,m,n) for(int i=m;i>=n;i--)
#define LL long long
#define lan(a,b) memset(a,b,sizeof(a))
#define sqr(a) a*a
using namespace std;

#define maxn 100010
int shu[maxn];

int lowbit(int i)
{
    return i&(-i);
}

int query(int i)
{
    int ans=0;
    while(i)
    {
        ans=max(ans,shu[i]);
        i-=lowbit(i);
    }
    return ans;
}

void update(int i,int p)
{
    while(i<=maxn-1)
    {
        shu[i]=max(p,shu[i]);
        i+=lowbit(i);
    }
}


struct node
{
    int x,y,v;
}a[100010];
int dp[100010];
int d[100010];

bool cmp(node a,node b)
{
    if(a.x==b.x)
        return a.y<b.y;
    return a.x<b.x;
}

bool cmp1(node a,node b)
{
    if(a.y==b.y)
        return a.x<b.x;
    return a.y<b.y;
}


int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        lan(d,0);
        lan(shu,0);
        lan(a,0);
        lan(dp,0);
        int n;
        scanf("%d",&n);
        int x,y,v;
        For(i,1,n)
        {
            scanf("%d%d%d",&x,&y,&v);
            a[i].x=x;
            a[i].y=y;
            a[i].v=v;
        }
        sort(a+1,a+1+n,cmp1);
        int tem=a[1].y;
        int id=1;
        a[1].y=1;
        For(i,2,n)
        {
            if(a[i].y==tem)
            {
                a[i].y=id;
            }
            else
            {
                tem=a[i].y;
                id++;
                a[i].y=id;
            }
        }
        sort(a+1,a+1+n,cmp);
        tem=a[1].x;
        id=1;
        a[1].x=1;
        d[1]=1;
        For(i,2,n)
        {
            if(a[i].x==tem)
            {
                a[i].x=id;
                d[id]++;
            }
            else
            {
                tem=a[i].x;
                id++;
                a[i].x=id;
                d[id]++;
            }
        }
        int maxx=0;
        id=0;
        int l=1,r;
        For(i,1,n)
        {
//            printf("d[%d]=%d\n",i,d[i]);
            if(!d[i])
                continue;
            For(j,1,d[i])
            {
               int k=j+id;
                x=a[k].x;
                y=a[k].y;
                v=a[k].v;
               int ans1=query(y-1)+v;
                int ans2=query(y);
//                printf("%d %d:%d %d\n",x,y,ans1,ans2);
                dp[y]=max(ans1,ans2);
            }
            For(j,1,d[i])
            {
                int k=j+id;
                    x=a[k].x;
                    y=a[k].y;
                    v=a[k].v;
//                    printf("%d %d:%d\n",x,y,query(y-1));
                    maxx=max(maxx,max(dp[y],query(y-1)));
                    update(y,max(dp[y],query(y-1)));
            }
                id+=d[i];
        }
        printf("%d\n",maxx);
    }
    return 0;
}

 

全局–局部傅里叶神经算子(GL-FNO):原理、严格推导与 PINN 混合策略 本文提出了一种全局-局部傅里叶神经算子(GL-FNO)及其与物理信息神经网络(PINN)的结合方法。主要内容包括: 架构设计:GL-FNO包含两个分支 - 全局分支处理低频结构,使用下采样输入;局部分支处理高频细节,使用全分辨率输入。两分支通过自适应门控机制融合。 理论分析:证明了GL-FNO在"低频全局+高频局部"任务上的优势,给出了误差分解和复杂度分析,并推导了与PINN结合时的渐进一致性条件。 实现方法:采用频谱微分计算物理残差,推导了完整的训练流程,包括数据损失与物理损失的联合优 阅读详情

相关推荐

Voronoi算法构建多晶

孪晶多晶 采用孪晶的原子链作为种子通过voronoi算法可以得到孪晶多晶结构。 孪晶种子: txt文件不需要特殊设置 box 150 150 150 random 8 得到孪晶多晶: 通过改变孪晶种子的长度可以得到不同孪晶片层厚度的多晶。 准二维柱晶 所有晶粒在某一维度的晶向一致,晶粒仅在平面内具有旋转关系,所有晶界为旋转对称晶界,这种结构的多晶其位错滑移在某些方向受限,但是能极大的提高晶粒...

yamatachi的博客 5279

HDU-6447 YJJ's Salesman 线段树+推导(维护区间最大值)

题意: 给定n个点,每个点有个权值,只有从这个点的左下方45°上来,才能获得这个点的权值,每次只能从某个点往上走一格或往右走一格,或往右上走一格, 问:找一条路径,使获得权值最大;   思路: 首先我们能够想到对于A点(x1,y1),它的最优值应该是由某个  B点(x2,y2)  &amp;&amp;  x2&lt;x1  &amp;&amp;  y2&lt;y1  得来的,如果遍历的话...

床前明月光 378

超详细Tokenizer——文本训练数据预处理

Tokenizer是Keras库中的一个文本处理工具,它用于将文本分词并构建词汇表,同时将文本映射到整数序列。这对于自然语言处理任务非常有用,例如文本分类、情感分析、机器翻译等。

halo的博客 3700

YJJ's Salesman HDU - 6447(dp+树状数组优化)

前面已经分析过,并且用线段树写过。树状数组对单点更新更快,所以..... 代码: #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;vector&gt; #include &lt;queue&gt; #incl...

untilyouydc 492

微带天线理论学习笔记(1)

微带天线的概念是由Deschamps于1953年提出来的,它是在一块厚度远小于工作波长的介质基片的一面敷以金属辐射片、一面全部敷以金属薄层作接地板而成。辐射片可以根据不同的要求设计成各种形状。微带天线具有质量轻、体积小和易于制造等优点,广泛应用于个人无线通信中。

qq_36521926的博客 6225

保姆级教程:用ESP32和SPH0645麦克风做个无线录音笔(附Python服务端实时播放)

本文提供了一份详细的ESP32无线录音笔开发指南,涵盖从硬件搭建到Python服务端实时回放的全过程。通过SPH0645麦克风采集高质量音频数据,利用ESP32的I2S接口和WiFi功能实现无线传输,并结合Python服务端实现实时播放和WAV文件保存,适合远程音频监控和创意交互装置开发。

weixin_30700099的博客 641

hdu6447(树状数组+离散化)

商人从(0,0)走到(1e9,1e9)途中有若干村庄,商人可以向(x,y+1)(x+1, y)(x+1, y+1)三个方向前进,当向(x+1,y+1)方向前进时可以获得村庄(x+1, y+1)的利润,问商人途中最多可以挣多少钱   商人到达点(x,y)的最大利润一定是从(0,0)到(x-1,y-1)这个矩形转移而来的,但是如果单纯的用二维来dp会超空间,可以考虑dp的顺序而降低dp维度,dp顺...

bpdwn2017的博客 838

IDC 数据中心工程师面试题汇总

(适用于:IDC运维、机房值班、机房工程师、机柜运维、IDC基础设施、IDC网络运维岗)

老韩的Linux云计算架构师进阶之路 1069

hdu 6447 - 树状数组+离散化

题目链接:点击这里   解题思路: 用y从小到到排序,y相等的按x从大到小排序,那么我用x做树状数组维护前缀最大值,因为经过这样排序之后,i前面所有的点y都是递增的,所以可以直接取前缀最大就行了。   #include&lt;bits/stdc++.h&gt; using namespace std; #define fi first #define se second #define...

过路人丶的博客 680

Xilinx平台SRIO介绍(五)示例工程Example Design介绍

理解IP的使用,少不了Example Design的学习。

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

手把手教你完成YOLOv11 PySide6目标检测界面搭建,使用Qt6设计YOLOv11检测系统,前台系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程

目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。YOLO系列模型由于其高效的检测速度和较高的准确率,成为目标检测任务的首选算法之一。本项目结合 YOLOv11 与 PySide6,构建了一个图形化界面,便于用户进行目标检测的操作和展示,实现对图片、视频和摄像头的实时目标检测,不仅可以用于大论文的工作量展示,还可以作为毕业设计。系统功能有:目标检测程序实现图片/视频/摄像头检测,AI 问答界面(deepseek大模型接口,流式输出)、退出登录、界面保存登录状态、个人信息修改等

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 7013

HDU 6447(线段树)

传送门 题面: YJJ is a salesman who has traveled through western country. YJJ is always on journey. Either is he at the destination, or on the way to destination. One day, he is going to tra...

weixin_30241919的博客 268

Matlab基于PSO-MVMD粒子群算法优化多元变分模态分解

Matlab基于PSO-MVMD粒子群算法优化多元变分模态分解

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 517

HDU 6447 YJJ's Salesman(树状数组优化DP + 离散化)

HDU 6447 YJJ’s Salesman 题目 给一个二维数组,从(0,0)走到(1e9, 1e9)。每次只能走右,下,右下,三个方向。其中只有通过右下走到特定给出的点(村庄)时才会获得分值。问最后走到终点最大分值。 分析 很明显的 DP 题目。状态转移题目都给出了。但是 1e9 很明显会爆。 想一下,题目让求最大分值,而最大分值只与特定的点有关。也就是说数组的列上如果没有村庄怎么走都没关系...

Stormjing的博客 328

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

hdu 6447 YJJ's Salesman(离散化+树状数组优化dp)

题意 有一天,你想从城市A走到城市B,假设城市A在正方形$(0,0)$点,而城市B在正方形$(10^9,10^9)$点,你是能向东,向南或者向东南走,也就是说,假设你站在$(x,y)$点,你只能向$(x+1,y),(x,y+1)和(x+1,y+1)$这三个方向走。在这个矩阵的地图上,还散落着一些小村庄,村庄k坐落的位置为$(x_k,y,_k)$,如果你能从$(x_k-1,x_y-1)$...

259

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【HDU 6447】YJJ's Salesman 离散化+树状数组+DP

                                      YJJ's Salesman Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1374    Accepted Submission(s): 483   Pr...

Xylon的博客 523

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HDU 6447 YJJ's Salesman(离散化+树状数组+dp)

  题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6447        题意是有一个1e9*1e9的地图,有1e5个村庄,有一个人从(0,0)开始往(1e9,1e9)走,他每次只能向右、向下、向右下走一个单位,当他从一个地方向右下走到一个村庄时(从(x,y)走到(x+1,y+1)的时候),他就可以获得这个村庄的权值,问他能获得的最大权值是多少。...

Charles_Zaqdt的博客 432

HDU - 6447 YJJ's Salesman(树状数组优化的dp+离散化)

  YJJ's Salesman Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1996    Accepted Submission(s): 744   Problem Description ...

柳予欣的三味书屋~ 287

YJJ's Salesman HDU - 6447(二维dp变一维,树状数组+离散化+dp)

传送门 题意: 从 (0,0)往 (10^9,10^9) 走,每次只能从 (x,y) 走到(x+1,y) 或者 (x,y+1) 或者 (x+1,y+1),不能折返,不能走重复的路, 在地图上分布着一些村庄,给出村庄的坐标(x,y) 和 v值,当且仅当你从(x−1,y−1) 走到村庄时,你才可以获得 v,求最大能获得多少 v。 题解: 显然,假设我走到了某一个村庄 (x0,y0),那么只有...

肘子的博客 405

HDU 6447 YJJ's Salesman (排序+离散化+树状数组+dp || 树状数组维护最值)

第二种更好理解点。 以前虽然学过离散化,但是接触的只是皮毛而已。 这道题就不会了。于是深深理解了下kuangbin的code。 #include&lt;bits/stdc++.h&gt; using namespace std; const int maxn=1e5+10; struct Node{ int x,y,v; void input(){ s...

兜率工的博客 360

【2018ccpc区域赛网络赛】【hdu6447 YJJ's Salesman】【dp+离散化+树状数组/线段树优化】

链接: http://acm.hdu.edu.cn/showproblem.php?pid=6447 分析:二维坐标排序,x-&gt;大,y-&gt;小,由于我们每次走必须x,y均变大,那么相当于只要考虑排序后的y的值。从左往右考虑y,dp[i]=max(dp[j])+val[i](i表示第i个点),由于y的数据范围为1e9,需要离散化,然后用树状数组维护求最大。 代码: #pragma...

running_acmer的博客 446

HDU 6447 YJJ's Salesman 【离散化+树状数组求区间最大】

传送门:HDU 6447 YJJ's Salesman Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description YJJ is a salesman who has traveled through western country. YJJ ...

Waiting For You 326

hdu6447 YJJ's Salesman(线段树/树状数组+背包+离散化)

题目 (0,0)到(1e9,1e9)的网格上有若干个点, 点(xi,yi)有一个权值vi,网格点数n&lt;=1e5 从(0,0)出发,到(1e9,1e9),问收益最大是多少 每次可以向右走一格,或向下走一格,或向右下走一格, 收益(xi,yi)的vi,当且仅当从(xi-1,yi-1)走到(xi,yi) 思路来源 归神 题解 先将x值离散化一下,缩成1-1e5的范围, 然后点按...

小衣同学的博客 365

2018CCPC网络赛1010 HDU6447 YJJ's Salesman(线段树 + DP + 离散化)

YJJ's Salesman Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   Problem Description YJJ is a salesman who has traveled through western country. YJ...

BORUSSIA DORTMUND 455

HDU 6447YJJ's Salesman CCPC预选赛

链接:http://hdu.hustoj.com/showproblem.php?pid=6447 题意:假如一个人站在(x,y)上,那么他可以往(x+1,y),(x,y+1),(x+1,y+1)三个方向走,起初在(0,0)上,地图上有n个物品,若要得到(x,y)的价值,就必须从(x-1,y-1)走来。求最大价值。 首先每个点的范围很大,需要离散化。对于(x,y)这个点的价值,在他左上方的位置...

安得广厦千万间的博客 326

HUD 6447 YJJ's Salesman (dp + 树状数组优化)

题意 给你一张109∗109109∗10910^9 * 10^9 的地图,你在(0,0)(0,0)(0,0)位置,你只能向右或者向下或者像右下走,之后给你一些点,你如果从右下走到这些点的时候就会得到他们的值(向右走或者向下走到这些点不会得到他们的值),现在问你如何走完全图让他们的权值最大。 思路 我们可以想到没必要把所有的地图的走完,我们只想着如何把这些有值的点全部都走完之后得到一个最大值就...

wjmwsgj的博客 322
上一篇: hdu 6430 TeaTree 线段树合并
下一篇: hdu 6446 Tree and Permutation dfs,思维
Dale_zero
博客等级 码龄9年 10粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值