TJOI2015 Day2解题报告
来源:互联网 发布:mac怎么下载qq 编辑:程序博客网 时间:2024/05/17 23:11
旅游:
在一棵N<=10^5的树上要求支持:①从a点走到b点,求最大的value[j]-value[i],其中i,j是点,i在路径中出现的位置先于j。②将a~b路径上每个点的value加上v。
自然可以用树链剖分/LCT做。每一段区间存四个数:①“后减前”型的最大值fmx,②“前减后”型的最大值bmx(这是由于有时候区间可能会被翻转),③最大值mx,④最小值mn。合并时的思路是这样的:合并区间的fmx要么是max(a.fmx,b.fmx),要么是b.mx-a.mn。它们分别对应于没有跨越mid和跨越了mid这两种情况。bmx同理。
树链剖分的具体细节十分复杂,调了半天。
棋盘:
这道题的题面比较坑:它是从0开始编号的,也就是说棋子是站在中间那一行,能打到上面那一行和下面那一行。所以某一行的棋子放置只和相邻行有关。而每一行一共至多2^M(不超过64)种放法,也就是说可以预处理出来转移矩阵:D[i][j]=1代表上一行为i时下一行可以为j。然后用矩阵快速幂搞即可。
概率论:
先写个N^2的70分暴力。算出两个数组:statesum[i]代表有i个节点的树共有多少种,sonsum[i]代表所有不同情况中的叶子节点个数之和。那么i个节点的树的答案自然就是sonsum[i]/statesum[i]。把暴力打的表全部输出,可以发现statesum[i]就是卡特兰数C[i],而sonsum[i]一定是i的倍数。多少倍呢?也是卡特兰数,确切的讲是C[i-1]。那么n个节点的树,答案就是n*C[n-1]/C[n]。把卡特兰数的通项公式代进去,答案就是n*(n+1)/(2*(2n-1))。
具体的证明十分复杂,需要求出生成函数,然后用广义二项式定理求系数,然后再用积分求另外一个系数。
- TJOI2015 Day2解题报告
- BZOJ3996: [TJOI2015]线性代数 解题报告
- BZOJ3998: [TJOI2015]弦论 解题报告
- BZOJ4000: [TJOI2015]棋盘 解题报告
- Day2解题报告
- NOIP2015 day2 解题报告
- BZOJ3997: [TJOI2015]组合数学 解题报告
- NOIP 2016 Day2 解题报告
- NOIP 2015 Day2 解题报告
- noip 2015 day2解题报告
- [2011noip day2]7.27test解题报告
- 【noip2014提高组】【Day2】【解题报告】
- 【noip2013】【提高组】【Day2】【解题报告】
- NOIP2013提高组Day2 华容道 解题报告
- [REVIEW] NOIP 2015 Day2 解题报告
- NOIP 2015 提高组 day2 解题报告
- NOIP 2015 Day2 解题报告(全面)
- SDOI2016 R1 day2 解题报告(bzoj4516,bzoj4517,bzoj4518)
- Oracle Forms之动态List Item Value
- App开发日报 2015-05-13 Swifter:100个Swift开发必备Tip
- 图像边缘检测经典算子及MATLAB实现
- MYSQL表的线性转换
- 超轻量级缓存技术——EhCache
- TJOI2015 Day2解题报告
- 201402 一种新的遥感影像角点提取方法
- jquery动态title和文字缩略显示
- android获取SD卡剩余空间及注意事项
- PHP 左旋字符串的两种方法
- HDU 3999 The order of a Tree 二叉树
- spark中的action和transformation
- [IOS]对UITableView的简单封装,实现了下拉放大头部图片的效果
- jquery获取屏幕宽度的问题