Contest 1135 at HZOI
Problem A: 优美的棋
发现一个能够证实的规律就是了……
忘记给<<运算的左边变量转化为long long类型了,结果挂了20分……
之后必定记得<<运算不会由于右边变量是long long类型而把运算改成long long类型啊……
并且也要记得测试大数据来查错啊……
Problem B: 优美的树
50分的dp很好想……而后就是优化了……
咱们知道,咱们的dp状态数组能够看作是一个离散的函数,而二维的状态数组即可以看作是n个函数,因此若是这个函数有一些特性的话,那这个角度又是一种优化dp的方法.
在这道题里,咱们的函数是下凸的,那么其累加的话,便会获得新的下凸函数,咱们只要能让其在合法时间内累加,而且,处理好随后的后缀min操做就行了,咱们考虑一种高效的维护方法——维护拐点与初值.咱们考虑到每个节点只会形成一个拐点,因此拐点总数是O(n)级别的,并且每一个拐点只会让函数斜率加1,因此咱们只要用可并堆维护咱们的拐点,每次累加,合并两个堆,然后缀min操做就能够直接pop堆顶.
PS:出题人管这种方法叫"一类用函数去压缩状态的dp题".
Problem C: 优美的串
比较好的后缀自动机dp吧……考试的时候没仔细分析就一顿码,结果码完才发现本身是错的,幸亏码的东西能够做为部分分,要否则就完犊子了……之后仍是要"Think twice,code once."
在这道题目中,打破了以往在设计dp状态时潜移默化造成的意识——让咱们的状态记录更多的信息.这道题里,设计状态的时候,着重强调了信息的实用性,以及对转移的便利,同时还利用后缀自动机的最简状态自动机特性来减小状态数,而且利用对于不合法状态的分析来剪掉不合法状态(在这里须要提到的是,dfs寻找合法状态比迭代寻找合法状态要剪掉更多的不合法状态).html
Contest 1133 at HZOI
Problem A: 遮天蔽日
数据水到爆……出题人的题解也是各类考虑不全……
大概就是须要求个均匀质量多边形的重心,而后再一波操做……这波操做必定程度上须要思惟的严谨性.
关于求重心的方法:
多边形的重心
求任意多边形的重心
Problem B: 三元组
不管你是用manacher仍是回文自动机,这题都挺水.
经过zzh了解了一发回文自动机的新科技——CodeForces #932G.Palindrome Partition
Problem C: 最有价值
比较水的最小割,我发现咱们建图的时候只要建图符合最小割原则就没有问题……算法
Contest 1132 at HZOI
Problem A: 区间第K小
数据分治60分……
感受已经不会作如今的数据结构题了……
思路是差分+总体二分,就是从一个离线的部分分的方法引出在线的100分作法,这种从部分分启发方法是第一次见到诶……
不是很会总体二分,这是第一次知道总体二分是什么意思……不过这种思想与方法也是很好的诶.
数据结构也须要增强了.
写可持久化数据结构的时候,一次区间修改所形成的空间花费比一次单点修改所形成的空间话费要大得多.
经过观察程序运行过程来进行优化与剪枝也是不错的一种思路.
Problem B: 求和
看到这道题会想到反演,而后就有了60分.
考虑容斥,获得式子之后利用一些数论函数的性质的到咱们须要杜教筛,利用通常杜教筛的思路进行有意识的构造就能够了.
发现目前式子没法继续优化或推导的时候,能够退一步海阔天空啊.还有,在实现的时候,有一些小的细节可能会给你的程序带来意想不到的优化,虽然到如今我也不知道那个小细节为何影响那么大,再有就是能用整型就少用浮点数了,毕竟精度嘛.
Problem C: C
这题真是尼玛吊.
做为一只苣蒻,只能想到10分作法……
首先,利用指望的线性性来分解指望,从而达到减少问题困难程度的目的.在这里利用了指望的本质——它反映随机变量平均取值的大小.
而后,烧脑一波来化简状态,同时获得转移方程.
最后,利用一种高科技来解这个方程——对于像这样的方程,咱们能够利用左边的已知推导出全部状态关于初始未知状态的表达式,再利用右边的已知列出小规模的线性方程组来解得初始未知状态的答案,从而获得全部状态的答案.
烧脑题……数组
Contest 1131 at HZOI
仍然是数学专项测试……
Problem A: 猜拳游戏
考试的时候觉得是水题,最后发现本身是错的.
notes:
I.利用改换定义来获得式子,这能够在“山重水复疑无路”的时候达到“柳暗花明又一村”的效果.
II.分数规划有妙用,在这道题里利用他,能够把几率转化为指望,感受好流弊啊~~~
III.使用高斯消元的时候,经过观察并利用矩阵特色来优化消元是一种常见的优化方法.
IV.if的常数比max函数小多了啊……
V.一般状况下指望比几率要容易处理,因此把几率问题转为处理指望也就算的上是一种有效的优化了.
Problem B: inequ
TMD数据范围和题面都不全!!!不过也是我没有梦想……
数据范围和题面若是是全的话,60分仍是很好拿的啊……
正解不会……看不懂题解……
分段打表大法吼~~~
Problem C: 生成树
之前作过的题,忘记了……
因此说多项式+Matrix-Tree来进行有关生成树的计数是一种套路,并且尤为是在对边有一些限制的时候,而后利用高斯消元来解系数就是这个套路的全部了……
并不会拉格朗日,只会高斯消元……数据结构
Contest 1130 at HZOI
又是一次数学专项测试……
Problem A: B
看一眼就是傻逼杜教筛,只不过只能拿到80分,不过度析一下,若是预处理前1e6的组合数就能够过掉了……这个预处理其实动动脑子就能够想到,仍是太菜……对于预处理的优化还有待研究啊.正解的方法好像不太同样,还没看……
Problem B: B君的回忆
思考一下就会发现须要向上推模数,打了个表发现有循环节,并且和p同阶,因此考虑如何找循环节,我想到了BSGS,由于感受BSGS能够解决这个问题(因此说BSGS只不过是一种分块方法,不必定是去解那种方程的啊,像这种找循环节的题目也是蛮适合BSGS的嘛).可是这玩意只能拿到60分,不过若是你强力wqs一波,是能够拿到80~100分的啊.正解是大力结论一波,个人BSGS作法固然是个部分分,在这个部分分的基础上加上两个结论,基本就能够过了,再加上一个强力小结论,就能够飞快了,若是把map改为unordered_map,那就更快了哈.题解里还给了一个结论,可是不知道有啥用……因此这道题就给了我一群"知其然而不知其因此然"的结论……感受十分不爽,可是又没有什么办法,毕竟人菜啊……不过这个东西彷佛能够经过打表获得,可是和普通的打表找规律不同的是,这个东西的规律自己就是分状况的规律,再加上一个特判……还尼玛有这种操做……
Problem C: sanrd
这题真是挺流弊的……
具体见ryf's NOI前的考试日志中 4.22 T3.
就是画柿子的能力与意识,其中有几个比较好玩的技巧:
I.把2xy变成(x+y)^2-x^2-y^2.
II.若是关于i,知足k=i+j的k、j的乘积是咱们要求的值,那么这也能够fft.
III.由简到易、维数扩展、从新构造的思想. 函数
Contest 1129 at HZOI
(考完才发现这是数学专项测试……)
Problem A: 解方程
打了个50分作法,结果因为压内存而翻车了……压成1维的杨辉三角,必定要注意数组里没有空的地方啊……可是我若是打个对拍也就出来了……之后考试仍是尽可能打对拍吧,虽然有时候自信也不是错.
正解是容斥,首先你动一下脑子就会发现n2部分很智障,因此就能够把n1往这个方向容斥了,固然求组合数须要exLucas(我才知道我之前就会的那个方法是exLucas……那个阶乘看状况处理).
调试的时候,必定要注意隐式数组越界啊!!!
我考试的时候彷佛连脑子都没用动……
Problem B: 宇宙序列
会了fwt就果断50分了,可是因为不会fwt,因此考试推了2.5h+才把这东西搞定……菜死算了……
而后你会发现你能够利用fwt的线性性来优化他,然而这并不会多一些分数……可是这会启发你一件事——因为咱们是对应位相乘,因此每一位都独立的,因此咱们能够单独算每一位的,因而咱们的计算对象就从数组变为了单个数字,这个时候,你会发现,咱们能够倍增他,这在必定程度上利用了模意义以及模数很小,若是不是这样的话彷佛不行?
思想:优化算法(优化部分分也会有必定的启发的吗?)、fwt的线性性、倍增、利用题目性质——模数小.
Problem C: exp
一道比较牛逼的指望几率dp.
主要思想——指望几率(废话)、环问题转为序列问题、倒序考虑问题(考虑最后一步)、区间dp的区间分割(分割为独立的两个区间来转移)、特判(尼玛个人作法特判AC,不特判0分).
主要是处理好dp的边界,我仍是有一些边界比较迷啊.测试
Contest 1128 at HZOI
考试的时候不是很专一,就直接GG了,仍是太菜了……
LOJ#6031.「雅礼集训 2017 Day1」字符串
思想:数据分治、根号分类处理、观察数据性质.
LOJ#6033.「雅礼集训 2017 Day2」棋盘游戏
一眼就是裸的二分图博弈,可是因为个人博弈论和匈牙利都太菜,因此我猜了半天结论才猜到结论,还打错了……
考试的时候还想写个暴力拍一下,结果因为不专一打错了个变量,并且有因为后来太慌了,也没有调出来……
菜死了……
LOJ#6032.「雅礼集训 2017 Day2」水箱
考试没怎么想这道题,可是这题真的不难啊……
我一开始想到的是分治,可是不太会实现,看了题解,发现能够打重构树,因而最后就码出来了一个树形dp.
思想:重构树.大数据