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啊。。

  • 相关阅读:
    更新pip10后 ImportError: cannot import name ‘main'
    动态规划刷题集python代码
    ctr中的GBDT+LR的优点
    msgpack生成lib,vs新建lib等
    两个简单的动态规划问题,0-1背包和最大不相邻数累加和,附递归c代码
    贝叶斯先验解释l1正则和l2正则区别
    找出平面上斜率最大的两点
    Maven——快速入门手册(学习记录)
    Java基础——深入理解Java中的final关键字(转载)
    Spring——scope详解(转载)
  • 原文地址:https://www.cnblogs.com/yinwuxiao/p/9945246.html
Copyright © 2011-2022 走看看