摘要: 就我感觉这道题很神仙吗/kel 仔细想想应该也是一种适用范围挺广的做法。 考虑我们可以通过dijkstra在O(nlogn)求出一个点集到另外一个点集的最短路。 那么我们可以通过一些划分点集的方式使得每一对点都被计算一次。 考虑按照二进制划分。 两个不同的数至少有一个二进制位不同。 按照每一个二进制 阅读全文
posted @ 2019-04-25 22:26 Creed-qwq 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 很像LNOI 2014 LCA那道题。 同样的套路,离线以后直接扫描线。 k=1的话就是原题。 考虑一般情况。 原本的做法是对x到根的这条链做一下区间+1操作,目的是为了是的在深度为i的位置得到的贡献是i。 因此,我们只需要构造出一个任意一个位置都满足前缀和为i^k的序列即可。 然后每次把这个序列加 阅读全文
posted @ 2019-04-25 20:24 Creed-qwq 阅读(226) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-04-25 08:05 Creed-qwq 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 题目的含义可以看做是以权值为下标的一些柱子,每个柱子的高度就是这个权值的出现的次数。 然后把这些柱子向左推倒,一个高度为h的柱子的影响范围为i−h+1∼i。 那么答案就是查询1∼n的这段区间没有被覆盖的点的个数。 因为所有没有被覆盖的位置都需要且可以通过一次更改使得能被推倒。 考虑线段树维护这个东西 阅读全文
posted @ 2019-04-25 07:45 Creed-qwq 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 比较套路的DP优化高斯消元。 考虑射从里面射到第i面镜子的光线为F[i],外面为G[i]。 显然有 A[i]✖F[i]+B[i]✖G[i]=F[i+1] A[i+1]✖G[i+1]+B[i+1]✖F[i+1]=G[i] 然后如果一直F[i],G[i],就可以直接推出F[i+1]和G[i+1]。 但是 阅读全文
posted @ 2019-04-25 01:23 Creed-qwq 阅读(192) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.com.cn/problem/P5319 把题目要求最大化的那个式子,取一手对数,然后就变成了一个分数规划问题。 二分后AC自动机上DP即可。 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define N 阅读全文
posted @ 2019-04-25 01:17 Creed-qwq 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 有点毒瘤的一个题。(主要原因还是我太菜 第一个问题求的大概是一个 sigema n C(F[n],K),其中F[n]是斐波那契数列。 考虑把组合数转成下降幂,用第一类斯特林数展开。 转化为 sigema n sigema i fn^i ✖ S(K,i)✖ ( 1)^(K i) 换一下求和顺序,把S和 阅读全文
posted @ 2019-04-25 01:15 Creed-qwq 阅读(281) 评论(0) 推荐(0) 编辑