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

2018 ccpc 网络赛总结及部分题解 参加的第一场正儿八经的ACM比赛,从头到尾连开五题最终除了1004签到之外全部凉凉。总结一下,在做题策略上还是不要过于长时间一个人生怼一道题,要注重团队合作的意识,除此之外,能力还是差很多,做题量远远不够,对模型的分析和转化能力待加强。 大概就说下开了的那五题吧 链接 1001 hdu6438 Buy and Resell 题目大意:商人能在N个地方以aiai的价格买入或卖出商品,在每个地方... 阅读详情

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 is always on journey. Either is he at the destination, or on the way to destination.
One day, he is going to travel from city A to southeastern city B. Let us assume that A is (0,0) on the rectangle map and B (109,109) . YJJ is so busy so he never turn back or go twice the same way, he will only move to east, south or southeast, which means, if YJJ is at (x,y) now (0≤x≤109,0≤y≤109) , he will only forward to (x+1,y) , (x,y+1) or (x+1,y+1) .
On the rectangle map from (0,0) to (109,109) , there are several villages scattering on the map. Villagers will do business deals with salesmen from northwestern, but not northern or western. In mathematical language, this means when there is a village k on (xk,yk) (1≤xk≤109,1≤yk≤109) , only the one who was from (xk−1,yk−1) to (xk,yk) will be able to earn vk dollars.(YJJ may get different number of dollars from different village.)
YJJ has no time to plan the path, can you help him to find maximum of dollars YJJ can get.

 

 

Input

The first line of the input contains an integer T (1≤T≤10) ,which is the number of test cases.

In each case, the first line of the input contains an integer N (1≤N≤105) .The following N lines, the k -th line contains 3 integers, xk,yk,vk (0≤vk≤103) , which indicate that there is a village on (xk,yk) and he can get vk dollars in that village.
The positions of each village is distinct.

 

 

Output

The maximum of dollars YJJ can get.

 

 

Sample Input


 

1 3 1 1 1 1 2 2 3 3 1

 

 

Sample Output


 

3

 

 

题目大意是说在一个1e9*1e9的地图上有1e5个村庄,每个村庄有一定的利润。每次只能从(x,y)走到(x+1,y)或(x,y+1)或(x+1,y+1),并且只有是用最后一种走法走到村庄的才能获得该村庄的利益。

我的做法是先把村庄按照纵坐标从小到大,横坐标从大到小排序一下(横坐标从小到大是类似01背包),再把横坐标离散化一下这样遍历村庄的时候就能直接在一个一维的数组里找最大利益并更新当前横坐标的利益,用线段树或树状数组维护最大利益即可。

#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
typedef long long ll;
int maxx[4 * maxn];
int n;
int x[maxn];
struct fun
{
    int x,y,v;
}z[maxn];
int cntx;
void update(int l, int r, int rt, int p, int v)
{
    if (p <= l && r <= p)
    {
        maxx[rt] = max(maxx[rt], v);
        return;
    }
    int mid = (l + r) >> 1;
    if (p <= mid)
        update(l, mid, rt << 1, p, v);
    else
        update(mid + 1, r, (rt << 1) + 1, p, v);
    maxx[rt] = max(maxx[rt << 1], maxx[(rt << 1) + 1]);
}
int query(int l, int r, int rt, int l1, int r1)
{
    if (l > r || l1 > r1)
        return 0;
    if (l1 <= l && r <= r1)
        return maxx[rt];
    int mid = (l + r) >> 1;
    int ans1,ans2;
    ans1 = ans2 = 0;
    if (l1 <= mid)
        ans1 = query(l, mid, rt << 1, l1, r1);
    if (r1 > mid)
        ans2 = query(mid + 1, r, (rt << 1) + 1, l1, r1);
    return max(ans1, ans2);
}
bool cmp(fun a, fun b)
{
    if (a.y != b.y)
        return a.y < b.y;
    return a.x > b.x;
}
int main()
{
//    freopen("in.txt", "r", stdin);
    int t;
    scanf("%d", &t);
    while (t--)
    {
        memset(maxx, 0, sizeof(maxx));
        cntx = 1;
        scanf("%d", &n);
        for (int i = 0; i < n; i++)
        {
            scanf("%d%d%d", &z[i].x, &z[i].y, &z[i].v);
            x[i] = z[i].x;
        }
        sort(x, x + n);
        for (int i = 0; i < n; i++)
            z[i].x = lower_bound(x, x + n, z[i].x) - x + 1;
        sort(z, z + n, cmp);
        int ans = 0;
        int tmp;
        for (int i = 0; i < n; i++)
        {
            tmp = query(1, n, 1, 1, z[i].x - 1) + z[i].v;
            ans = max(ans, tmp);
            update(1, n, 1, z[i].x, tmp);
        }
        printf("%d\n", ans);
    }
    return 0;
}

 

【MATLAB例程,无人机避障7】基于RRT*与人工势场法(RRT*+APF)的多无人机二维动态路径规划与避障 程序采用快速扩展随机树星算法(RRT*)与人工势场法(APF),实现四架无人机在二维动态障碍环境中的路径规划与协同避碰。通过RRT*的邻域选父和节点重连优化全局参考路径,利用APF进行局部动态避障,绘制全局路径、实际轨迹、安全净间隙、速度与加速度及航程等图像,对比RRT+APF与RRT*+APF的规划效果。无人机起终点、障碍物分布、采样次数及运动约束均可自行调整。 立即下载

相关推荐

TC8测试TCP-UNACCEPTABLE-04/006

TC8测试TCP-UNACCEPTABLE-04/006

2018 CCPC 吉林 E (THE TOWER) 计算几何

问题 E: THE TOWER 时间限制: 1 Sec 内存限制: 128 MB Special Judge 提交: 241 解决: 37 题目描述 The Tower shows atall tower perched on the top of a rocky mountain. Lightning strikes, setting the building alight, and tw...

Re_Life的博客 767

PSIM-串联谐振半桥LLC开关电源+PFM变频闭环控制【仿真+计算书+参考文献】

内容概要:本文档系统性地整合了电力电子与控制系统仿真领域的丰富资源,聚焦于基于PSIM和Simulink平台的串联谐振半桥LLC开关电源建模与仿真,深入探讨PFM变频闭环控制策略的设计与实现。内容涵盖LLC谐振变换器的工作原理、关键参数设计、开环与闭环仿真模型构建、软开关技术(ZVS/ZCS)、恒压恒流双竞争控制机制以及调频控制等核心技术,配套提供完整的仿真文件、计算书和参考文献,有助于深入理解高频开关电源系统的动态响应特性与稳定性分析方法。此外,文档还汇集了大量拓展性仿真资源,涉及双向DC-DC变换器、PWM整流器、PFC电路、储能系统、微电网优化、DAB变换器、并网逆变器等多个方向,构成一套完整的科研与工程实践参考资料体系。; 适合人群:适用于电力电子、电气工程及其自动化等相关专业的高校本科生、研究生,以及从事开关电源设计、新能源系统开发、电力变换器研发等工作的工程技术人员。; 使用场景及目标:①深入学习LLC谐振变换器的拓扑结构与闭环控制原理;②掌握PSIM/Simulink在电力电子系统中的高精度建模与仿真技能;③为科研项目、学位论文或产品开发提供可复用的技术方案与代码基础;④深化对PFM控制、软启动过程、ZVS/ZCS实现机制及系统稳定性的理解; 阅读建议:建议结合文档中提供的仿真模型与计算书进行同步操作,优先剖析主电路拓扑与控制逻辑架构,再逐步开展参数调节与仿真验证实验,同时可参考所列相关资源拓展技术视野,提升综合设计能力。

2018中国大学生程序设计竞赛 - 网络选拔赛 1010 YJJ's Salesman2018

Problem Description 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 trave...

天翼之城的博客 970

使用Intel编译器编译OpenFOAM

本文总结了使用INTEL编译器编译OpenFOAM的过程

姜蜉蝣的博客 1546

ENVI5.6 Seamless Mosaic多景影像镶嵌色差问题

多景影像无缝镶嵌色差问题拟解决方法

Matchaya的博客 7703

2018中国大学生程序设计竞赛 - 网络选拔赛

1001.Buy and Resell 思路:贪心,以前见过不少类型的,队友做的,直接上代码了; 代码: #include&lt;bits/stdc++.h&gt; using namespace std; struct sell { long long int val; bool operator&lt;(const sell &amp;aa)const ...

AAAAAAAC的博客 4104

高性能网站设计之缓存更新的套路

看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。 我不知道为什么这么多人用的都是这

代码技巧 1万+

2018CCPC网络赛

https://blog.youkuaiyun.com/qq_37891604/article/details/82078998 https://blog.youkuaiyun.com/qq_37891604/article/details/82078184 https://blog.youkuaiyun.com/qq_37891604/article/details/82056843

周周的博客 1075

银河麒麟V10ServerSP3中安装Nacos2.4.x详细教程

银河麒麟V10ServerSP3中安装Nacos2.4.x详细教程

yuanjinshenglife的专栏 1299

第二章-Ethernet/IP基本概念

在I/O连接中,一旦连接建立,就不会有请求-响应数据,只会按照连接建立时指定的生产触发器所确定的时间间隔生产和消耗带有ConnectionID的数据。连接是通过连接管理器对象的Forward请求服务建立的,ForwardOpen请求包含所有连接参数,包括传输类、生产触发器、定时信息、电子密钥和连接ID。I/O适配器:I/O适配器从I/O扫描器接收隐式通信连接请求,然后以请求的速率生成I/O数据。I/O扫描器:启动与I/O适配器的隐式通信,需要处理连接的配置以及如何配置适配器。扫描器还支持启动显式报文。

_Nooice的博客 1233

HDU 6445 2018CCPC网络赛1008 Search for Answer(费用流 + 构图)

大致题意:给你一个竞赛图,告诉你一个记数方法,也即所有边同向的四元组加一,所有相邻两边方向相反的四元组减一。现在让你最大化这个结果。说实话,不看题解应该很难想到是一个费用流……题解给的也真是简单,个人感觉还可能有错?我们可以这么考虑,观察它给的计数算法,我们可以发现,他的总的循环次数是。于是我们不妨假设每一次循环都产生贡献,然后减去那些实际上不产生贡献和产生负贡献的东西。考虑什么样的情况下不会产生贡献,我们发现如果一个点,我选择了任意两条它的出边以及对应的点,那么不管第四个点是什么,显然构成的四元组一定不会

alpc_qleonardo 860

Openharmony 命令行工具hdc的获取与安装

OpenHarmony实战:命令行工具hdc安装应用指南_hdc工具-优快云博客t=N7T8。

Devlin_的博客 1万+

CCPC 2018 网络赛 1010 YJJ's Salesman

http://acm.hdu.edu.cn/showproblem.php?pid=6447 YJJ's Salesman Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1330    Accepted Submi...

qq_36921652的博客 244

VM虚拟机下,通过无线,有线两种方式连接PLC的设置方法

1,VMware软件:编辑>虚拟网络编辑器。 2.右下角:更改设置(如果可以选中“添加网络”选项,则可考虑略过此步) 3.选中VMnet0,点击桥接模式,选中你的物理机有线网卡。点击确定。 4.点击添加网络,我的添加完是VMnet2,然后选中,像上一步样,点击桥接模式,在下拉菜单中选中笔记本的【无线网卡】,然后点击确定。 5.VMware软件:虚拟机>设置。 6.点击 添加>网络...

weixin_46441715的博客 2万+

Python二级考试题目及答案解析(含刷题软件)

答案:A 解析:print()函数可以在屏幕上输出指定的字符串或变量,input()函数用于从键盘获取用户输入,int()函数可以将指定的字符串或浮点数转换为整数,float()函数可以将指定的字符串或整数转换为浮点数。答案:A 解析:int()函数可以将字符串转换为整数,float()函数可以将字符串转换为浮点数,str()函数可以将任意类型的变量转换为字符串,bool()函数可以将任意类型的变量转换为布尔值。

YOLO 1万+

HDU6447 YJJ's Salesman-2018CCPC网络赛-线段树求区间最值+离散化+dp

(有任何问题欢迎留言或私聊 &amp;amp;&amp;amp; 欢迎交流讨论哦 Catalog Catalog Problem:Portal传送门 Solution: AC_Code: Problem Description: Problem:Portal传送门  原题目描述在最下面。  1e5个点,问从(0,0)走到(1e9,1e9)的最大收益。  当你...

打过ICPC/CCPC,学习ACM算法,Linux内核,Openharmony,加油努力开心珍惜 451

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

[HDU 6447][2018CCPC网络选拔赛 1010][YJJ's Salesman][离散化+线段树+DP]

链接:   http://acm.hdu.edu.cn/showproblem.php?pid=6447 题意:   左上角(0,0),右下角(10^9,10^9)的网格,其中有n(1<=n<=10^5)个方格内有权值。   一次只能沿右,下,右下三个方向走一个格子,只有沿右下方向走到格子里才可以获得权值。   问从(0,0)到(10^9,10^9)的路径最大权值是多少。 ...

weixin_30878361的博客 264

IEM模型,地表粗糙度模拟

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

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

2018CCPC网络赛 && HDU 6444: G. Neko's loop(线段树)

  Neko's loop Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 0    Accepted Submission(s): 0 Problem Description Neko has a loop of size n....

加载中... 813

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【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

ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 A. Saving Tang Monk II

题解 题目大意 给一个图S是起点 T是终点 .是空房间 #是毒气室 B是氧气瓶存放室 P是加速室 每次走到空房间或者起点消耗1秒 走到氧气室获得一个氧气瓶最多携带5个氧气瓶 进入毒气室需要一瓶氧气并且消耗2秒 进入加速室不消耗时间(可以这么理解) 问S走到T的最短时间 按照题意 分层BFS搜索即可 AC代码 #include &amp;amp;lt;stdio.h&amp;amp;gt; #include &amp;amp;lt;bits/st...

CaprYang的博客 1225

2018年 CCPC 网络赛 赛后总结

      历程:由于只是网络赛,所以今天就三开了。一开始的看题我看了d题,zz和jsw从头尾看起来,发现c题似乎可做,和费马大定理有关,于是和zz一起马上找如何计算勾股数的方法,比较慢的A掉了,而jsw此时看了最后的两道题,并且也与此同时把倒数第二题做掉了,但是此时hdu评测机炸了,判题队列排到几十页之后,所以不知道是否ac,然后就开始想最后一道题目,我和zz想了一下以为是一道类似dp或者图论题...

ysk850874665的博客 1686

2018CCPC网络赛 && HDU 6348: A. Buy and Resell(优先队列+贪心)

  Buy and Resell Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 480    Accepted Submission(s): 114 Problem Description The Power Cube is u...

加载中... 779

CCPC 1010 YJJ's Salesman

题目 自己菜的不行,一开始就想到离散化,然后脑抽去从离散后的坐标进行背包,然后告诉队友自己的思路会超时,然后都没从这个方面下手,结果赛后看题解心态就炸了,于是随手做了一发离散+线段树优化dp就·······wa了,没考虑离散后的y轴不是原来的y轴,但y=1时不为0。改了一下就a了。 这题很多人都是用树状数组,但是我不会树状数组求最大值呀,虽然有模板,但是不理解所以还是没有用,用了比较熟悉的线段...

Yuzzzzzz的博客 368

2018 CCPC 网络赛 补题

1001Buy and Resell 某种东西在不同的时间有不同的价格,允许在任意时刻买入,并在之后的任意时刻卖出,求所能获得的最大的收益。 考虑如果是在第k天卖出的话,要使收益最大必然是在前面k-1天中空闲的时间里价格最低的一天买入的。 如果某次买入的价格和前面某次交易的卖出价格相同的话,那么就将这两次交易合并成一次,因为题目有在收益最大的条件下交易次数最少的要求。 把每一天拆成两个点, ...

NPU_SXY的博客 557

2018中国大学生程序设计竞赛 - 网络选拔赛 1010 YJJ's Salesman (线段树+dp)

http://acm.hdu.edu.cn/showproblem.php?pid=6447   题意: 给你n个点,你只能向右,向下,向右下走,当你向右下走恰巧走到某个点时,你可以获得收益,问最大收益是多少 思路: 先离散化到1e5 * 1e5 的格点,dp[i][j]表示走到(i,j)为止的得到的最大金钱,显然dp[i][j]=max{ dp[i-1][j],dp[i][j-1],d...

Oops的博客 300
上一篇: NAIPC2018 Zoning Houses(ST表)
下一篇: A Partial Order Relation(思维)
lingyan_BVB
博客等级 码龄9年 12粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值