上一页 1 2 3 4 5 6 7 8 9 ··· 27 下一页
摘要: 考虑如果只有距离为1的边,那我用在时间i到达某个点的状态数矩阵 乘上转移矩阵(就是边的邻接矩阵),就能得到i+1时间的 然后又考虑到边权只有1~9,那可以把边拆成只有距离为1的 具体做法是一个点拆成9个然后串联 阅读全文
posted @ 2018-11-27 19:49 Ressed 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 首先分解质因数,$A^B=p_1^{m_1B}p_2^{m_2B}...p_n^{m_nB}$ 然后的话,它的所有因数的和就是$\prod{(1+p_i^1+p_i^2+...+p_i^n)}$ 用一个等比数列求和公式,变成了$\prod{\frac{p_i^{m_iB+1}-1}{p_i-1}}$ 阅读全文
posted @ 2018-11-27 19:37 Ressed 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 对于加减,用bitset维护当前每个数有没有 对于乘,暴力枚举约数 然后莫队 复杂度$O(m(\sqrt{n}+\frac{c}{64}))$ 阅读全文
posted @ 2018-11-27 19:29 Ressed 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 好像所有人都写的左偏树 但我不会啊233 首先发现乘的时候 系数不会为负,所以能得到一个关键条件:变化后的战斗力随变化前的战斗力大小单调 所以我们考虑倍增 设hp[x][i]是从x开始一路攻克$2^i$个城池所需要最小的初始生命值 设trans[x][i][0/1]是攻克了$2^i$个城池后攻击力的 阅读全文
posted @ 2018-11-26 21:15 Ressed 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 反正肯定要建虚树,考虑建完之后怎么做 先随便dp一下算出来距离某点最近的询问点mi[x](因为有的虚树上的点它不是询问点嘛) 那我们对于某条链x到fa[x]上的非虚树上的点(包括他们的非虚树上的孩子),要么把它分给mi[x],要么分给mi[fa[x]] 我找到这个中间点以后,在原树上倍增跳过去,算他 阅读全文
posted @ 2018-11-21 20:51 Ressed 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 首先,如果我知道[l,r],要转移到[l,r+1]的时候,就是加上以r+1为右端点,[l,r+1]为左端点的区间的最小值,其他情况和这个类似 考虑这玩意怎么求 右端点固定的话,我左端点越往左走,这个最小值一定是越来越小 找到[l,r+1]范围内的最小值mi,那么在mi前面的第一个比mi小的位置(记为 阅读全文
posted @ 2018-11-21 20:12 Ressed 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 莫队 如果知道[l,r]的答案时能快速求出[l+1,r][l,r+1][l-1,r][l,r-1]的答案,那么可以用莫队离线求解 如果要从[l,r]得到[l',r'],那么需要$O(|r'-r|+|l'-l|)$次更新答案 所以需要确定一个求答案的顺序使得这玩意最优 以$\frac{n}{q}$分块 阅读全文
posted @ 2018-11-21 20:01 Ressed 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 相邻格子连双向边,如果一个点有障碍,那进它的边权就是1,否则是0 这样的话,两点间的最短路+[起始点有障碍],就是从一个点走到另一个需要清除的障碍的个数 求出最短路后枚举这两个点就可以了 然而30*30还是太大跑不开floyd,只能写一个dijkstra 阅读全文
posted @ 2018-11-21 19:40 Ressed 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 设f[i]是以i位置为结尾的最长满足条件子序列的长度 那么j能转移到i的条件是,$j<i , max[j]<=a[i] , a[j]<=min[i]$,其中max和min表示这个位置能变化出来的最大值或最小值 这个东西用一个cdq来做 具体来说,先做左半区间,然后左边按max排序,右边按a排序,把左 阅读全文
posted @ 2018-11-21 19:35 Ressed 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 交换的话,只有它们中间的书会对答案产生影响 树状数组记位置,套线段树记书的编号 它对应的页数和书的个数 然后就是减掉中间那些原来是逆序对的,再把交换以后是逆序对的加上 别忘了考虑这两个自己交换以后是不是逆序的 最重要的一步:开个O2 阅读全文
posted @ 2018-11-21 19:30 Ressed 阅读(155) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 27 下一页