zoukankan      html  css  js  c++  java
  • 「2019.7.16 考试」给狂妄自负加以适当的绝望。

    三道题,礼物,通讯,奇袭

    第二题应当是比较简单的,但是我并没有想到正解,其实稍微一贪心就能得到解。

    第一题的话,教训就是,我应该先有个大致的思路或者框架再进行程序设计,没有想明白就开始写或者是想当然的写,这样写到一半再重新写,很浪费时间。我一开始写了一个正向dp,但是死活不过样例,后来想到了高斯消元,因为式子仿佛是有后效性的,但是最终我想了一下,可以移项消除这个后效性,那么我们需要找到一个“基”,让这个“基”是不具有后效性的,然后用这个“基”去更新他人,那么这个“基”就决不能自己转移到自己,考虑一下,当状态是mx的时候,直接停止下一次购买,所以不具有后效性。

    那么我们考虑反向dp,这是一个常见的期望dp思路,考虑反向从[s|(1<<i)]转移回[s]这样转移之后,通过移项等数学操作可以拿到期望次数。

    第三题的话,27分暴力很好打,一个二维前缀优化,n3暴力非常简单。

    考虑n2暴力。

    把题目转化为一维问题,也就是求一些区间里的满足这个区间里的值在y轴的映射是连续的一段,那么也就是max[l,r]-min[l,r]+1==r-l+1

    所以可以ST表处理一波然后0.5*n2枚举区间最终得到答案。

    期望64分。

    AC的话,挺玄的,虽然说现在是过了,但是我反而觉得64分暴力的思路比这个正解的思路更加的重要。

    那么考虑分治算法,之前HEOI2019的时候有一个学长和我说过,分治是一个非常强的算法,现在在这里验证了。

    是挺强的。

    分治的思路大致就是:分到最小的不可分的子结构,然后由子结构再挨个进行区间合并最终得到整体结构。

    换成这道题就是:当前区间的合法区间个数=左区间的合法区间个数+右区间的合法区间个数+跨越左右的合法区间个数。

    数学老师说不会做的时候要分分类:

    1.最值在同侧。

    2.最值在不同侧。

    第一个可以直接计算验证。

    第二个的话,利用区间[l,mid]或者[mid+1,r]的最值单调不增(减)性质,进行贡献计算。

    因为取值范围只增不减,那么最值只能朝着远离x轴的方向行进。

    具体来说要判断两个条件,满足其中一个的在桶域上加,有某一个不符合的就在桶域上减,而每个区间端点作的贡献直接从桶里倒出来就可以了。其实这也相当与一个hash的离散思想,进行值域统计和查值。

    复杂度是nlogn。

    总的来说这次考得并不太理想,但是唯一的进步就是我交卷子了,比起上次来说多了几十分,也算是一个进步。

    毕竟我都在电脑上贴了一张写着「十分钟一看表,五分钟就交卷」的纸条,再不交卷子就有点过分了。

    虽然没有考得很理想,不过我改掉了一个不交卷的毛病,也算是一个进步。

    下次的目标就是做到wq学长评价wzz学长国赛时候的那句话「为了做题而做题」,我还不太理解,大概是一种暂时忘却了得失的专注吧,我想我离那个境界还差很远吧,不过要用这个做目标,也许有一天就实现了吧。

    下午吃饭前走的比较晚,本来是想再调会再走的,过了一会教练进来了,我心想我还是先溜了吧。

    正想从机房后面溜的时候没想到被教练发现了。

    教练问我题改的怎么样了,我说还没。当时心里想觉得他大概是还要说一些什么别的吧。

    他和我说「现在到了困难的时候了吧,看你怎么应付了。」

    我说「嗯。」

    我会好好应对的。

    用今天颓的moyiii学姐的一句话来结尾。

    给狂妄自负加以适当的绝望,这才是真理。

  • 相关阅读:
    在Fedora 20下使用TexturePacker
    实战微信JS SDK开发:贺卡制作与播放(1)
    Fedora 20下安装Google PinYin输入法
    Netty5 时间服务器 有粘包问题
    Netty5入门学习笔记003-TCP粘包/拆包问题的解决之道(下)
    Netty5入门学习笔记002-TCP粘包/拆包问题的解决之道(上)
    11g Rac 添加日志组
    工作中的生长与完善——Leo鉴书86
    搜集直方图repeat和skewonly
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxError Exception
  • 原文地址:https://www.cnblogs.com/Lrefrain/p/11196792.html
Copyright © 2011-2022 走看看