zoukankan      html  css  js  c++  java
  • noip2018游记

    游记:

    每道题目感觉都还可以(如果不是原题的话)

    但这傻逼组题人是什么水平啊

    d1t1,d1t2都比d2t1简单

    d1t1 d1t3 d2t2

    d2t1 d1t2 d2t3

    这样选手分数会高很多吧

    day1:

    zj真的是准时8:30

    之前连改个设置都不让

    写完模板就8:40了 很慌

    看t1 woc这不是noip原题么 秒

    看t2 啥 小凯的疑惑

    好像没啥关系 直接排序dp就可以了吧 秒

    然后9:00开始做t3

    二分答案显然

    然后发现子树内肯定要贪心的匹配

    然后留一条上去

    然后看了一下数据范围应该是$nlog^2{n}$的

    于是发现二分肯定是能做的

    于是就写了二分+贪心+二分

    9:45过了大样例

    然后10:10分写完拍 并且很顺利的拍上了

    然后也不知道该干什么了 最后一个小时对着电脑发呆

    预感到了day2一定是时间来不及的

    day2:

    看t1,刚开始没有看见每次走的要是新点的限制

    然后一直想的就是拿个priority_queue维护

    然后复杂度$n^2logn$

    想到8:50发现不会优化。。

    准备开始写发现题目好像还有个限制

    那不就是每次都贪心走大儿子么。。(???怎么又是贪心啊)

    诶怎么还要排序啊 我不会优化啊。。

    然后想了一会发现不会。。

    然后老老实实打了朴素。。

    因为怕后面来不及。。。根本没有仔细想环上边的数目和树中点的个数这两个不可能都很大

    最坏情况应该是$sqrt{n}$个点的环每个上面有$sqrt{n}$个点

    这样$1/2 n sqrt{n} logn $ 完全可以过啊。。

    其实nm也很简单直接预处理排序就好了

    然后9:20左右开始看第二题。。

    然后因为很慌。。就没仔细看数据范围

    就看了一个n=8,m根本没看

    刚开始以为只要斜线上单点递减就是合法方案

    写了一下发现第二个样例过不了 144,112

    然后写暴力

    然后输出方案,查了半天不知道少了哪个

    于是用程序查。。

    这么搞搞到10:00等于就写了个暴力

    于是我发现左下和右下必须要相等当当前点有2条相等路径到达时

    然后想了一下细节之后准备开始写

    看了一下数据范围 一档m=8 一档m=1e6 什么意思啊卧槽

    立马放弃了这个做法(考完我想了一下这个做法应该是对的 复杂度2^n*m 不过没有任何意义啊)

    虽然能过80但比65就多15分还得写死

    知乎上好像有更简单的充要条件,以后再看吧

    然后开始打2,3的部分分(看题目的时候就知道有规律早知道早点打出来了)

    发现2是个4为首项3为公比的等比数列

    然后3在第几项之后也是个3为公比的等比数列

    然后打了一下4 发现4也是????

    卧槽,这是不是傻逼题啊

    然后我就又陷入了无穷无尽的找规律。。

    然后找了好久找不出前面的数有啥规律

    10:50 弃疗去t3

    然后这个时候更慌了啊。。

    看完题意,1000,1000很明显就是每次重新做一遍最大独立集,44分

    思考了1分钟正解。。不会。。。(反正我都没时间打想啥啊)

    然后我看了一下后面的部分分 好多啊。。

    太浪费时间了就看了链的。。

    然后发现分治或者线段树可做

    于是开始打。。 11:15左右调完了暴力

    纠结了一下要不要写链(感觉来不及 事实这肯定来不及)

    然后感觉分治好写就写了分治。。

    写到11:40写完了

    然后??感觉这个100行的我是调不出来的

    然后去检查了一下有没有啥写错的地方

    顺便把t2加上了n=4的特判

    然后出考场就知道了t1是道傻逼题啊

    t2好像没多少人会做 花时间做t3的好像都有挺多分啊。。

    #updata 昨天看到有人说40min写完t3 70多 很震惊

    以为写的是链不带其他特殊的。。

    发现太傻逼了

    t3写链需要维护线段树 $ f[x][0/1][0/1] $ 表示当前点左端点右端点状态以及他们隔壁点的状态

    我去看了一下链的部分分

    发现只有4分是没有特殊情况的???

    对于根为1的 这不是前缀后缀搞一下就好了么还分治啥啊

    对于根为2的还是可以这么搞啊

    这里就有20分 10min就可以写完啊。。

    对于B1 直接暴力改变这条链的dp值就可以了(这个dp是可加减的)

    所以这样就有72了啊 考试就算只有1个小时也完全可以做到啊。。

    正解想了一下感觉大概知道了

    倍增$f[x][y][0/1][0/1]$表示x向上调到z x是0/1,z是0/1

    因为这个dp是可减的 所以倍增数组可以处理出来

    考场没两个小时我是不会去写这种东西的。。

    考试的时候我以为正解是把分治变成点分治

    然后发现另一种做法是动态dp。。也就是动态链分治裸题

    t2听了bk的讲评

    发现好技巧啊。。。

    利用斜线的性质,爆搜出8,10之内的

    然后打表。。(说实话也不能说这个有多难 但实在考试是没时间)

    我觉得这day2 真的5个小时 比较合理啊。。

    测了一下t1 发现很傻逼

    由于我的判环是先处理出儿子再排序再搜的

    硬是把有环的给搜成没环的

    然后洛谷76 牛客84 早知道先dfs搜一遍是不是环边 这样既不会wa又不会t了啊

    其实day2如果发挥还可以的话 可以 100+65-70+72的

    550以上的 都很nb啊。。

  • 相关阅读:
    Python中所有的关键字
    关于selenium的8种元素定位
    对提示框的操作
    selenium+webservice进行百度登录
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled...报错解决
    Vue中使用echarts
    npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142解决方法
    插入排序
    冒泡排序优化
    roject 'org.springframework.boot:spring-boot-starter-parent:XXX' not found 解决
  • 原文地址:https://www.cnblogs.com/yinwuxiao/p/9945246.html
Copyright © 2011-2022 走看看