• noip 2016 提高组题解


    前几天写的那个纯属搞笑。(额,好吧,其实这个也不怎么正经)

    就先说说day2吧:

    T1:这个东西应该叫做数论吧。

    然而我一看到就照着样例在纸上推了大半天(然而还是没有看出来这东西是个杨辉三角)

    然后就想干脆先把n≤25的拿了再说(这个爆不了long long)

    然后就硬套用那个组合数公式。

    再然后,就只拿了35分。

    T2:我勒个去。

    这个东西应该用堆来优化的吧。

    然而并不会堆。

    然后就切一个遍历一遍把两端都再加进去(虽然我知道这个时间复杂度估计连20都拿不了)。

    一个估计是正解的东西:

    思考一下,我们一定会切最长的那一个(废话,题目的要求),然后就是对于一个已经切过的蚯蚓来说,它首先被分成了i,j(i>=j)那么一定要先切i。

    然后就要开三个队列。

    第一个维护已经排好序的原蚯蚓长度。

    第二个维护被切后长度长的那一段蚯蚓。

    第三个维护被切后长度短的那一段蚯蚓。

    这样的话据说是线性的(如果这个做法真的能ac的话)。

    T3:

    angrybirds??

    所以说去年是斗地主,前年是flappy bird。然后今年就是angrybirds?那明年估计就要出植物大战僵尸了(这个Flag就立这里了)。

    言归正传:

    作为一个第一年参加的蒟蒻,看完题以后脑海里就两个字:朕不会!!(一,二,两,恩没错,就是两个字)

    好吧,大神们说这个么状态状压什么的,真心不会。

    然后枚举两个猪,再加上鸟,总共三个点,能确定一个抛物线。(标号最小的猪一定要死,每次可以解决最小的猪,只枚举另一只猪来确定抛物线)。

    然后就没有然后了,写了个骗分的东西,然而没骗到。

    ------------------------------------------------------------------------------------------分割线-----------------------------------------------------------------------------------

    day1:

    这个东西今年是要逆天呀。

    T1:

    摸你题。比较简单的吧。

    但是,那么长的题目描述说真的第一次看吓到我了。(还有那个真的想再吐槽一次的mogician)

    然而就是细节比前两年的多多了,宝宝本来的满分程序,被卡掉了70分。

    在此提醒同志们,写if一定要加else。

    其实就是判断一下往左数还是往右数,然后你现在的小人是朝内还是朝外。

    T2:

    当我第一次看到这道题的时候,其实我的内心是:

    这样的

    这样的

    还有这样的

    还有这样的

    等等,这个是什么鬼。

    秒秒钟的55变25有木有

    算了说正经的。

    作为一个连树都没学过的男人,我真的真的不知道这个东西到底怎么搞。

    于是写了个25分的暴力。

    下面是转自WerKeyTom_FTD的博客的T2正解。

    我们用d表示深度,a表示一条路线的长度。 
    对于路线S->T,若lca为V,拆成S->V以及V->T两条树链。 
    对于S->V上每一个点j,其答案可以加一的条件: 
    dSdj=wj 
    dS=dj+wj 
    右边只与j有关。 
    同样,对于V->T上每一个点j,其答案可以加一的条件: 
    dTdj=aiwj 
    dTai=djwj 
    右边只与j有关。 
    因此思考离线做法,对于一条路线,在S和T分别打两个tag,并在lca即V处回收tag。 
    用两颗线段树维护子树内目前还没被撤销掉的dS和dT-ai的权值线段树,权值可能为负数需要设置一个绝对值的最大值来加上,或者提前进行离散化。 
    这个线段树是单点修改和查询的,用线段树仅仅是因为线段树可以进行合并。 
    这个算法带log,如何线性知道一个子树内某权值的数量? 
    维护一个桶,进入一个节点时得到该节点子树所需权值的数量t1,退出该节点时在桶中得到该节点子树所需权值的数量t2,那么显然该子树内有t2-t1个所需权值。

    T3:

    这个题猛一看就像是不可做的。

    我们会发现这个题辣么长的题目描述,

    辣么神秘的期望值,

    辣么长的题目描述,

    以及那个令人发指的需要自己推大半天的表格。

    然而,当真正去想的时候,原来这题的暴力分真的非常好拿。

    下来后听机房的大神说这道题:

    第一句:"wc原来都是套路”

    第二句:"这不就是个那个背包模型,只要再加上那四种情况就行了"

    第三句:"然后在用一下dp就可以了"

    没错,这就ok了。

    ---------------------------------------------------------------------------------------------------------分割线-------------------------------------------------------------------------------------------------------------

    最后,也是本人要说的最最最重要的一点。

    1.千万千万不要相信监考老师,你就相信自己机房里的学长和机房的老师说的提交各式,然后按照这个格式提交,千万别让监考老师检查(因为他们根本什么都不知道)

    2.写if的时候一定一定要加else。

    3.考试的时候别让别人或其他因素干扰你的思路和考试的心情。不要因为题太难导致根本就不想做,也不要因为题太简单就掉以轻心:

    比如这回的day1算是比较难的了,但是那些难的题给的暴力分也是比较良心的,千万不要连暴力都不想敲。

    然后就是day1的T1了,我以为很简单,结果......以后写if一定要加else!!!!!!!

    4.吃好,玩好,睡好,喝好,休息好(100kg的本尊觉得这一点非常非常重要)。

    5.最后一点,文件名千万不要打错,无论是输入输出的文件名,源代码的文件名,以及外层文件夹的文件名,还是最外层以考号命名的文件夹,一旦错一个就是致命的错误。(本人就是文件名错的,然后第一次noip就完美的爆零了,监考老师说如果谁的提交各式有问题让他看看,结果老师告诉我没问题,你交吧......)

    注:文中出现的我的成绩都是用官方数据自己用评测机评的(谁让我文件名打错了呢)。

  • 相关阅读:
    SharePoint Forums使用
    使用JS隐藏MOSS菜单
    缓存
    异步委托
    一个层动态放大的例子的一些知识点
    petshop之购物车再思考
    设置防止攻击session(疑惑)
    petshop异步和多线程
    Profile在petshop
    一个简单的显示隐藏知识点
  • 原文地址:https://www.cnblogs.com/assassinyyd/p/6114751.html
Copyright © 2020-2023  润新知