摘要: 分析:其实就是求m个区间的逆序对个数,题目真的是明摆着让我们用莫队算法,套用树状数组就可以了. 具体怎么转移呢?如果移动R,那么对区间[l,r]有影响的是R左边的元素,我们只需要看有多少在R左边比a[R]大的元素就可以了.如果移动L,对[l,r]有影响的是L右边的元素,并且比a[L]小,我们在移动L 阅读全文
posted @ 2017-09-26 22:02 zbtrs 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 分析:直接暴力算有30分,像斐波那契那样推式子算有60分,如果想要得到100分就要用一种数列题的常见优化--矩阵了. 当前的兔子数和十年内的兔子数有关,我们需要1个1*11的矩阵,来记录当前为0岁、1岁、2岁......兔子的数量,同时还需要一个快速幂矩阵进行计算.由于一年后a[1] = a[0], 阅读全文
posted @ 2017-09-26 21:22 zbtrs 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 题目描述 Description 给出一张n*n(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少1*2的多米诺骨牌进行掩盖。 题目描述 Description 给出一张n*n(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少1*2的多米诺骨牌进行掩盖。 给出一张n* 阅读全文
posted @ 2017-09-26 18:01 zbtrs 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 分析:标准的棋盘dp问题. 如果没有技能,那么就很好做了,相当于传纸条的做法.有了技能的限制,我们就要加上一维表示用了多少次技能,这个时候转移就要用到dfs了,而且不能用填表法,要用刷表法,从当前位置用技能的状态来更新到达的位置的状态,dp状态转移方程也要写成刷表法的形式. 如果很难从以前的状态推得 阅读全文
posted @ 2017-09-26 15:20 zbtrs 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 分析:这道题问的是树上整体的答案,当然要从整体上去考虑. 一条边对答案的贡献是这条边一端连接的点的个数*另一端连接的点的个数*边权,可以用一次dfs来统计答案,之后每次更改操作在原答案的基础上增减就好了. 千万不要傻傻地去求LCA......事实证明只有10分.问的是任意两点最短距离之和,树上两个点 阅读全文
posted @ 2017-09-26 14:07 zbtrs 阅读(279) 评论(0) 推荐(0) 编辑