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,其答案可以加一的条件:
dS−dj=wj
dS=dj+wj
右边只与j有关。
同样,对于V->T上每一个点j,其答案可以加一的条件:
dT−dj=ai−wj
dT−ai=dj−wj
右边只与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就完美的爆零了,监考老师说如果谁的提交各式有问题让他看看,结果老师告诉我没问题,你交吧......)
注:文中出现的我的成绩都是用官方数据自己用评测机评的(谁让我文件名打错了呢)。
noip 2016 提高组题解的更多相关文章
- NOIP 2014 提高组 题解
NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...
- NOIP 2001 提高组 题解
NOIP 2001 提高组 题解 No 1. 一元三次方程求解 https://vijos.org/p/1116 看见有人认真推导了求解公式,然后猥琐暴力过的同学们在一边偷笑~~~ 数据小 暴力枚举即 ...
- NOIP 2000 提高组 题解
NOIP2000 提高组 题解 No 1. 进制转换 https://www.rqnoj.cn/problem/295 水题 对于n和基数r, 每次用n mod r, 把余数按照逆序排列 注意 mod ...
- noip 2016 提高组总结(不是题解)
小弱鸡杨树辰是第一次参加像noip这样的高大上的比赛,于是他非常,非常,非常激动. 当他第二天考完试后,他正在yy自己的分数:day1T1应该是a掉了,T2写了个30分的暴力,T3也是个40分的暴力, ...
- noip 2016提高组D2T1 problem
我们可以先预处理一下组合数模K的值,然后我们可以发现对于答案ji[n][m],可以发现递推式ji[i][j]=ji[i-1][j]+ji[i][j-1]-ji[i-1][j-1]并对于Cij是否%k等 ...
- NOIP 2016 提高组 复赛 Day2T1==洛谷2822 组合数问题
题目描述 组合数表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们可以给出计算 ...
- NOIP 2008提高组第三题题解by rLq
啊啊啊啊啊啊今天已经星期三了吗 那么,来一波题解吧 本题地址http://www.luogu.org/problem/show?pid=1006 传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们 ...
- noip 2014 提高组初赛
noip 2014 提高组初赛 一. TCP协议属于哪一层协议( ) A. 应用层 B. 传输层 C. 网络层 D. 数据链路层 B TCP(传输控制协议) 若有变量int a; float: x, ...
- [NOIp 1998 提高组]Probelm 2 连接多位数【2011百度实习生笔试题】
/*====================================================================== [NOIp 1998 提高组]Probelm 2 连接 ...
随机推荐
- Android系统源码导入到eclipse
1.把eclipse工程配置文件复制到android源码根目录下 cp development/ide/eclipse/.classpath ./ 2. 在android源码根目录下新建文 ...
- CLR_Via_C#学习笔记之枚举
CLR_Via_C#学习笔记之枚举 枚举类型(Enum)定义的一组"符号名称/值"配对:因为枚举类型使用程序更容易编写.阅读和维护,而且它是强类型: 枚举是值类型:由System. ...
- sql 数据库的备份还原问题
今天工作中犯了一个严重的错误,就是在sql中写了一个update语句,还没写条件呢,结果误按了F5,唉,太佩服自己啦...这个脑子怎么不管用了呢?? 唉不说了,我在网上翻来覆去的找资料,最终想是不是可 ...
- ios学习之category设计模式
之前看书的时候,没怎么注意,但在项目中,才发现它的特别之处. 先来看看他用途:官网大意是这样写的:当你想简单的向一个已知类添加一个方法的时候,你就可以使用它.使用它的时候,命名是有要求的,如下: @i ...
- node包管理器
NPM小结 nodejs的出现,可以算是前端里程碑式的一个事件,它让前端攻城狮们摆脱了浏览器的束缚,踏上了一个更加宽广的舞台.前端的可能性,从此更加具有想象空间. 随着一系列基于nodes的应用/ ...
- WCF服务属性注入基础设施
WCF服务属性注入基础设施 WCF的服务的创建行为:使用默认构造函数创建WCF服务对象.如果我们想要在WCF内使用外部对象,最简单的方式就是把外部对象做成全局对象.然而这样的话会增加全局对象的数量,让 ...
- ajax简单后台交互
ajax简单后台交互 1,扯淡 单身的生活,大部分时间享受自由,小部分时间忍受寂寞. 生活有时候,其实蛮苦涩,让人难以下咽.那些用岁月积累起来的苦闷,无处宣泄,在自己的脑海里蔓延成一片片荆棘,让你每每 ...
- TensorFlow 入门之手写识别(MNIST) softmax算法
TensorFlow 入门之手写识别(MNIST) softmax算法 MNIST flyu6 softmax回归 softmax回归算法 TensorFlow实现softmax softmax回归算 ...
- offsetHeight在OnLoad中为0的现象
在使用IE中,特别在目前div+css的方式,往往不定义div的高度,这是在添加div内容后,需要获取div的高度时,往往需要用到offsetHeight. 在使用中,有时会碰到offsetHeigh ...
- j2ee面试宝典翻译(1)
q1:给出一些使用Java的理由? a1:java是一个有趣的编程语言,让我找出一些理由来: 内建的多线程机制.套接字.内存管理(自动垃圾回收) 面向对象 跨平台 通过对标准API的扩展来支持基于we ...