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

直流电源EMI滤波器设计实战:从器件选型到PCB布局的完整指南 本文提供了一份直流电源EMI滤波器的完整实战设计指南。针对EMI噪声超标问题,文章深入剖析了差模与共模噪声的抑制原理,详细讲解了从电路拓扑、核心器件(如X/Y电容、共模电感)的选型计算,到决定性能成败的PCB布局艺术。重点强调了低阻抗路径、干净接地及输入输出隔离等关键布局原则,并分享了常见的调试坑点与排查方法,旨在帮助硬件工程师设计出真正有效的滤波器,确保电源系统通过EMC测试。 阅读详情

题目链接: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;
}

 

基于SpringBoot+SpringCloud+Vue前后端分离项目实战 --开篇 如何高效学习Java? 毕业设计项目应该怎么做?入门实战项目应该怎么做? 做Java开发都应该学习哪些框架技术? 我想来跟你聊聊为什么要学习此专栏?我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,当你迷茫想努力没有方向时,最事半功倍的方法是:找人带你! 因为过来人,更懂得如何学、如何做、如何少走弯路! 那今天就给大家带来一门专栏课程,由 天罡gg 和 经海路大白狗 两位实力大牛合力打造的一款专栏,可以让你从0到1快速拥有企业级规范的项目实战经验! 阅读详情

相关推荐

C++继承与多态 - 继承多态原理01

C++继承多态原理讲解

大秦坑王的专栏 2977

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

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

床前明月光 378

体验灵雀云-创建基于Docker的云服务

今天体验了一下灵雀云,创建了第一个基于Docker的云服务。 1.登录灵雀云 2.开始使用 登录之后,从"控制台"进入操作界面,开始创建服务。 首先需要选择一个镜像。灵雀云已经为您提供了一些常用的镜像列表。请在“常用镜像”列表中,选择“其它”,然后找到“alauda/hello-world”镜像,点击它右侧的“选择”按钮,进入服务参数配置页面。 选择完要创建的

tomcat的专栏 3234

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

从SFF-8087到SFF-8643:详解服务器硬盘背板连接线缆的演变与实战接线

本文深度解析了服务器硬盘背板连接技术从SFF-8087到SFF-8643的演进历程,重点介绍了SAS、SATA和U.2接口的技术特点与实战接线方案。通过对比不同连接器标准的物理特性和电气规范,提供了混合环境下的线缆选择策略和常见故障排查指南,帮助IT专业人员优化存储系统性能与稳定性。

weixin_30603633的博客 275

C# ArcGIS Engine二次开发——实现“加载shp文件”

private void AddShpDataToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog OpFileDialog=new OpenFileDialog();//OpenFileDialog:打开文件对话框 OpFileDialog.Title="添加矢量数据"; OpFileDialog.Filter="(*.shp)|*.shp";//filter:过滤器;"(*.shp)|*.shp"

weixin_42191203的博客 5254

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

Win10/Win11系统下,用VSCode编译Betaflight固件最全避坑指南(从GCC安装到HEX生成)

本文详细介绍了在Win10/Win11系统下使用VSCode编译Betaflight固件的完整流程,包括GCC安装、环境变量配置、终端选择、Make工具安装等关键步骤,帮助开发者避开常见陷阱,高效生成HEX文件。特别针对VSCode环境优化和编译错误排查提供了实用解决方案。

weixin_42557803的博客 415

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

YOLOv11改进 | 添加注意力篇 | 结合2024最新Mamba注意力机制MLLA助力yolov11有效涨点含二次创新C2PSA(全网独家首发改进)

本文给大家带来的改进机制是结合号称超越Transformer架构的Mamba架构的最新注意力机制MLLA,本文将其和我们YOLOv11进行结合,的原理是通过将Mamba模型的一些核心设计融入线性注意力机制,从而提升模型的性能。具体来说,MLLA主要整合了Mamba中的“忘记门”(forget gate)和模块设计(block design)这两个关键因素,同时MLLA通过使用位置编码(RoPE)来替代忘记门,从而在保持并行计算和快速推理速度的同时,提供必要的位置信息。

Snu77的博客 3869

如何创建 SAP ABAP CDS View 的 Association

所以本文我们虽然学习了如何创建 SAP CDS View 的 association,知道了 association 是用来在 CDS View 里将两张数据库表关联起来,但根本不知道怎么使用这个 association. 而且从 association 的写法来看,似乎和本教程之前介绍 inner join,left join 这些数据库表的连接操作没什么区别,都是根据两张表的 carrid 和 connid 字段相同进行的连接。只看到了我们在 CDS View 源代码实现里,放出来的四个字段。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 904

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

DDR5中的On-Die Termination(ODT)详解:电阻值支持及其背后的秘密

DDR5支持多档ODT电阻值,范围从40Ω到480Ω,均基于240Ω标准参考电阻RZQR_{ZQ}RZQ​。不同电阻档位对应不同的信号负载和功耗需求。校准电压点关键,常用0.8×VDD进行精准调校。CA信号间ODT匹配必须严格控制,保证命令总线稳定。选择合适的ODT值是高速内存设计中不可忽视的细节。

weixin_43199439的博客 2096

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

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

Stormjing的博客 328

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

余额充值