HDU - 6447  先占坑,晚上补]

------------18/9/28兑现诺言来补了.....---------

虽然吧现在写题不是主要任务了...   就别一天有了时间就写了吧....

时间利用效率很低.... 可以算作修炼的一部分,修炼入门之后完全可以搞搞其他的,代码的功力别断了就是极好的.

链接: 点击这里

[0x01].有关题目hdu6447

其实仔细去看上面的链接讲得还是蛮清楚的.... 我就不重复了

主要就是: 其实一个点的最大值可以在上一行中横坐标小于当前横坐标的这些位置中的一个最大值加上当前点的值或者是本行左边的最大值取到。然后就用树状数组来维护这个最大值。最后的答案,只要在里面找到最大值就好了。

然后演示的图其实是先从左往右, 然后从上到下实现的... 至于为什么呢?

离散化: 参考1   (好懂)参考2(更准确一些)

关键:

例如 5 5 3 2

离散化应该是 3 3 2 1

而不是  4 3 2 1

先排序,再去重(得到标签序号的个数,数组就扔在那里了)

最后,用lower_bound  找到这个东西应该插入到哪个地方(lb最后是下标咯... ) 再加1

//sub_a是原来数组,先排序,没错,unique一下
//a[i]好像也是原来的数组,总之最后的结果是放在a[i]里去的...  唔,差不多就是一个副本的关系吧.,sort(sub_a,sub_a+n);
int size=unique(sub_a,sub_a+n)-sub_a;//size为离散化后元素个数
for(i=0;i<n;i++)
a[i]=lower_bound(sub_a,sub_a+size,a[i])-sub_a + 1;

[0x02].

题解1 解释的其实不错,但是 图错了,还是严格按照从上到下,从右边往左边来,(这样就不会影响后面,不然就是会疯狂累加,累加,累加个不停...)(就像背包原理一样,用过的扔掉)

至于呢,我们想获取的是每次变化的列,列里面的最大值,树状数组直接维护(复习树状数组)

题解2 有声之年看到写的这么详细的真是涕泪俱下....

以下为转载0----------------------

题意:有一个1e9*1e9的地图,从0,0开始走,只能向右,向下,向右下三种行走方式。地图上有n个坐标有权值val,若能通过向右下行走的方式达到这些坐标,就能收获val的积分。问走到最后获得的最大积分是多少。

首先想到的是一个动态规划求最大收获。递推式即dp[i][j]=max(dp[0~i-1][0~j-1])+val[i][j]。
在该坐标的左上角区域内的任意一个位置取一个最大值继承。这就形成了一个找二维区间最大值的问题。但是仔细一想是否真的是二维的?

首先我们对于地图的遍历顺序是从上到下从左到右递推。那么当要计算第i行第j列的值时,因为遍历过了该行上方的每一行即0~i-1,并且没有对i以下行数据进行遍历和处理。因此行是一直都限定好是遍历不到后面的位置的。查询区间最大值时就不会超过i,那么很明显就是对j-1列进行一维区间最大值的查询,用线段树进行处理。

还有一个问题是若从左到右遍历一行,那么低位列先被更新一个最大值。这样会出现的问题是,之后的列在通过线段树查询区间最大值是会通过同行列的数据传递过来,这是不合理的。为了避免这种情况,我们从后往前遍历j,并更新线段树,就不会影响,因为更改的值在查询区间之外。

其次,对于线段树的更新,我们每次都用一个继承过来的值加上新村庄的值,再单点更新回线段树。这样是能保证线段树中每列的值是不断变大的。因为我们每次都是去区间内最大值加上某个值,再去更新某一列,覆盖掉的该列的值必定小于新值。

最后,因为地图是1e9*1e9的,村庄只有1e5个,因此要做一个离散化。这里用vetcor去重离散化的模板。首先记录下每个坐标,然后对坐标排序,我们需要的是坐标排序后的下标,这就是坐标之间的相对大小,然后对于主要存储坐标的数组进行值的离散化后的更新。
一个坐标x原值,映射到该x在排序后数组中的下标值。通过二分排序数组找到下标值,之间赋值给存储坐标数组的x,就是离散化后的坐标值。

--------------------- 本文来自 kuronekonano 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/kuronekonano/article/details/82119767?utm_source=copy

[0x03].有关修炼

心还是静不下来.. 下午在一个玩手机的妹子旁边坐着,看着她晾着电脑我就很烦...

于是一气之下收拾好走了...换了地方之后直到我在爱好文具下了单才有心细细的看剩下的东西

晚上因为去菜鸟耽误了有1小时.. 回来马上划水半个小时换课,还不觉得羞耻......

很早以前就是这样的状态......  很难专注,又随时都容易被打断.

今天觉得,如果进入了状态快一点还好吧..

有别的环境因素就先别管它了... 找到自己觉得舒服的环境就好.... 还要继续修炼啊,今天感觉完全回到了之前的状态呢

还有就是  做事要果敢....要迅速....

每天中午看一下滴答需要我做什么.....

【线段树】几次比赛里面用到的线段树+相关推荐

  1. poj 2352 Stars 线段树(先建后查/边建边查)/树状数组三种方法思路详解,带你深入了解线段树难度⭐⭐⭐★

    poj 2352 Stars 目录 poj 2352 Stars 1.树状数组 2.线段树,先建树后查找 3.线段树,边建树边查找 Description Astronomers often exam ...

  2. Super Mario HDU - 4417(主席树解决区间数字小于k的个数||线段树+离线)

    Mario is world-famous plumber. His "burly" figure and amazing jumping ability reminded in ...

  3. Zju2112 Dynamic Rankings(树状数组套可持久化权值线段树)

    Zju2112 Dynamic Rankings description solution code description 给定一个含有n个数的序列a[1],a[2],a[3]--a[n],程序必须 ...

  4. “ 迎奥运、勤学习、树新风”演讲比赛主持词

    " 迎奥运.勤学习.树新风"演讲比赛主持词<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:of ...

  5. R语言ggplot2可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组在一起、并根据点的相似性将它们组织成树状图链接起来(Hierarchical Dendrogram)

    R语言ggplot2可视化树状图.层次聚类系统树图.树状图根据给定的距离度量将相似点分组在一起.并根据点的相似性将它们组织成树状图链接起来(Hierarchical Dendrogram) 目录

  6. Python使用matplotlib可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组在一起、并根据点的相似性将它们组织成树状图链接起来(Dendrogram)

    Python使用matplotlib可视化树状图.层次聚类系统树图.树状图根据给定的距离度量将相似点分组在一起.并根据点的相似性将它们组织成树状图链接起来(Dendrogram) 目录

  7. xgboost不能解决哪些问题?为什么?进而说明树模型有哪些缺陷?那种模型能够树模型的这种缺陷?

    xgboost不能解决哪些问题?为什么?进而说明树模型有哪些缺陷?那种模型能够树模型的这种缺陷? 目录

  8. 【编程题目】输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印...

    第 16 题(树): 题目(微软): 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印. 例如输入 8 / \ 6 10 / \ / \ 5 7 9 11 输出 8 6 1 ...

  9. b+树时间复杂度_阿里面试,问了B+树,这个回答让我通过了

    前言 上周我通过阿里一面,岗位是客户端开发工程师(是的,还是java岗!).面试过程中面试官问了B+树,回答时面试官一直点头(应该回答得还不错所以过了),今天详细讲一讲B+树. 平衡二叉树 它是一棵空 ...

  10. Java黑皮书课后题第3章:*3.32(几何:点的位置)给定一个从点p0(x0,y0)到p1(x1,y1)的有向线段,可以用以下公式判定定点p2(x2, y2)是在线段的左侧、右侧,或者在该线段上

    *3.32(几何:点的位置)给定一个从点p0(x0,y0)到p1(x1,y1)的有向线段,可以用以下公式判定定点p2(x2, y2)是在线段的左侧.右侧,或者在该线段上 题目 题目概述 运行示例 代码 ...

最新文章

  1. QT中关于头文件一个很奇怪的问题
  2. Xamarin提示Build-tools版本过老
  3. MxGraph从入门到精通之2:HelloWorld程序解析
  4. 520戏精上身!纸短情长,一句顶一万句的花式告白语抱走不谢!
  5. 九十、Python的GUI系列 | QtDesigner进行界面设计
  6. nginx模块开发—HTTP初始化之listen
  7. ArcGIS Engine 刷新问题
  8. 玩转GIT系列之【如何配置GIT的用户名/密码/密钥】
  9. Java命令行界面(第28部分):getopt4j
  10. Microsoft Updater Application Block 1.5.3 服务器端manifest文件设计 [翻译]
  11. OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse()
  12. 比亚迪赵长江:腾势今年将发布两款 SUV、一款 MPV
  13. HDU2112 HDU Today 最短路+字符串哈希
  14. Excel 中 添加 复选框。
  15. pwm 正弦波_正弦波逆变器和修正波逆变器的区别
  16. CakePHP 2.x CookBook 中文版 第七章 模型 之 数据校验
  17. MySQL 之 库操作
  18. 360政企安全集团率先获得国家级安全运营资质
  19. windows画图工具,两张图片叠加
  20. Word--Python-docx操作蒙古文等复杂文种更换字体

热门文章

  1. 用Python保住“设计大哥“的头发,直接甩给他10000张参考图,爬虫采集【稿定设计】平面模板素材
  2. mac pro 键帽 字母键拆卸
  3. NI(美国国家仪器)二面
  4. 阿里软件研发总监叶伟:如何处理技术和需求的矛盾
  5. css如何使文字抖动,纯CSS文字彩色抖动抖音效果
  6. python turtle随机生成图形_用 Python Turtle 模块做小游戏 (1) - 随机移动,万花筒和点图...
  7. 计算机科学与技术类业毕业生的职业发展路线
  8. idae 格式化代码 设置eslint_VSCode中使用vue项目ESlint验证配置
  9. sleep as android标签,Sleep as Android:终于、终于可以无痛起床
  10. 为什么手机换张卡就有就显示无服务器,手机卡为何一直显示无服务,但是在自家城市就会有信号。换了个城市就无服务了。...