zoukankan      html  css  js  c++  java
  • NOIP2018滚粗记

    day 0

    原来我们还是要期中考试的丫

    停课了十几天能考出个啥……

    不管不管先去学军好了,我要死在学军

    报道的时候我们居然被分到绍兴那边去了。然而义乌不是属于金华的么?我们学校还是改名叫绍兴中学附属中学好了

    然后拍照的时候边上走过来一个学校,大概有几十个人,好像都是来参加复赛的

    于是才明白我们这乡下学校有多么弱鸡

    晚上老师带我们吃了顿好的,睡觉前又把前几天更的剑来补完了。完全没准备明天的比赛因为完全不知道准备啥

    day 1

    六点起来吃早饭,不得不说宾馆里的早饭真的太丰盛了我真的想死在杭州不回去了

    在休息厅里碰到好多衢二大佬,zzk,ljn,jz,ltl(然而似乎都不认识我这个大菜鸡)。也看到纳尔了,然而一眼之后就找不到了

    进考场了,右边坐着个初二的,压力有点大……

    (T1)仔细一看,yy了一下觉得可以贪心,就是从左到右扫过去,(ans+=max(0,a[i]-a[i-1])),yy了一下发现正确性没错

    (T2)看了看想到了前几天模拟赛做的一道题目,简而言之就是先排个序,从小到大判新加的物品能不能被之前的物品表示出来,也就是判断(a_1x_1+a_2x_2...+a_mx_m=p)(p)即新加的物品,前面的(a)表示之前已经加过的物品)。如果这个方程有非负整数解就跳过,否则就把新的物品加进去。设(a_1)为最小的,那么化为(a_2x_2+...+a_mx_mequiv ppmod{a_1}),然后在膜意义下跑最短路,看看(dis[p\% a_1])是否小于等于(p)即可。加上几发玄学剪枝,勉强跑过极限数据

    (T3)发现是个二分+贪心,所有节点维护一下每一个儿子能往下伸的最长链,如果有两条链合起来能达到二分的长度就(++res),最后判断(res)是否大于等于(m)即可

    然而发现大样例死活过不去。冷静思考了一下发现对于每条链得去(lower\_bound)找能和它接一起的,于是每个节点开了个multiset。过了大样例非常高兴,测了下极限数据,2s

    吐血,考虑各种玄学优化,比如说每个节点用vector来存,码了半小时再测,4s

    算了能有几分给几分好了……

    然后根据被jzoj坑的经验,悲催的发现如果是链的话dfs会爆栈,于是趁最后特判了一下链的情况

    预计得分100+100+???=2??

    出来之后上了个厕所……md怎么厕所里全都是AK的,不上了影响心情……

    听说某纳尔一个小时就AK了……而且屏幕左边拍一个,右边拍一个,中间一个扫雷……

    听说,(T2)可以背包?我好像想复杂了

    听说,今天三题全有原题?好吧我还是刷题太少……

    下午不小心把剑来看完了,于是又开了个新坑

    晚上好像睡太早了……他们吃宵夜都没带上我……

    day 2

    早饭一如昨天的好吃啊……

    刚进休息厅就碰到纳尔了,于是坐他边上趁他睡着的时候戳他衣服上的纳尔玩

    我本想今天干脆三份退火骗分好了,然而纳尔一句“计数题呢”把我拉回了现实

    (T1)刚开始没看(m)的范围,想了个贪心发现是错的。看了看(m)发现贪心没问题,再仔细看看发现对(n=m)的情况不行

    后来想了想,如果(m=n-1),就从每个点优先向他字典序小的儿子遍历,如果(n=m),为了更优肯定有一条边不用走,枚举一下是哪条边就行了

    然而我似乎没特判链的情况……dfs可能要爆栈了……

    (T2)还真是计数题?不管了打表打表,打了一个小时的表发现啥规律也没有,只能无奈地把(3*3)的表以及(n=2)的情况给打起来

    (T3)一开始还以为(m)为边数,想了半天怎么搞掉环

    后来发现这居然是一棵树?暴力树形dp好了……

    又想了想链的情况,发现如果有一个点必为(1)和询问的点相邻的情况可做,正着跑一遍反着跑一遍然后加起来就行了

    然而不知出什么毛病了,最后检查的时候发现一堆bug,赶着最后的时限把找到的都改了,不知还有多少没发现的

    预计得分100+45+64=185

    出来后听说什么动态链分治啦状压dp啦(虽然前者没有听说过然而在我心中还是后者更难),算了乖乖滚粗吧


    发现个尴尬的事情,我平时考试一般都是老师提醒提交之后才建子文件夹的。所以……我考场上到底有没有建子文件夹……


    洛谷上测了一下,发现自己的d1t3链特判的时候忘记赋初值了……(95->65)
    原来链的时候dfs不会爆栈的么……被jzoj坑了……
    d2t2一个特判(m)打成(n)了,(45->25)
    d2t3特判写了(n<=1000),而且字符串读进来的时候读错了(64->28)
    呵呵……我脑子里在想什么……
    实际100+100+100+100+20+44=464

    day 3

    wc去不了了滚回去学文化课了

  • 相关阅读:
    BP神经网络的数学原理及其算法实现
    机器学习必知的10大算法
    支持向量机通俗导论(理解SVM的三层境界)
    svm算法 最通俗易懂讲解
    read/write/fsync与fread/fwrite/fflush的关系和区别
    ubuntu16.04编译QT5.6所依赖的库
    Linux下的tar压缩解压缩命令详解
    Ubuntu16下编译linux内核,报"mkimage" command not found错的解决
    Git之(一)Git是什么[转]
    mac上完整卸载删除:android studio方案
  • 原文地址:https://www.cnblogs.com/bztMinamoto/p/9942932.html
Copyright © 2011-2022 走看看