自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 牛客挑战赛 34 D:拉普兰德的愿望(曼哈顿距离转切比雪夫距离)

直接求不好求,正难则反,用总答案 - 距离小于 d 的点对数对于每一个点,扣除距离等于 d的那个边界,曼哈顿距离的边界是一个菱形不好处理将曼哈顿距离转化为切比雪夫距离,边界是一个正方形。做法是每个点按 x 排序,用树状数组维护 [x - d,x + d] 的所有 y 坐标,然后O(log) 统计即可。代码:#include<bits/stdc++.h>using n...

2019-11-23 14:07:06 197

原创 洛谷 P3964 [TJOI2013]松鼠聚会(切比雪夫距离和曼哈顿距离转换)

这个距离的定义就是切比雪夫距离的定义。切比雪夫距离的计算式子是:d = max(|x1 - x2|,|y1 - y2|)在切比雪夫距离的定义下,一个点和周围相邻的8个点的距离相等(都为1)。如果将距离拓展为 d:以某一个点为中心,与它的切比雪夫距离为d 的点会构成一个正方形:(即与某一个点距离相同的点会构成一个矩形)曼哈顿距离的计算式子:d = |x1 - x2| + |y1 - y2...

2019-11-23 13:18:16 305

原创 牛客挑战赛34 F :红的愿望(01分数规划+树形dp(依赖背包))

等价于选一些没有交点的边,使得∑[u]+a[v]w\displaystyle\sum \frac{[u]+a[v]}{w}∑w[u]+a[v]​最大。观察一下发现这个式子就是01分数规划的形式二分 ansansans ,将边权改造为:a[u]+a[v]−ans∗wa[u] + a[v] - ans * wa[u]+a[v]−ans∗w。根据01分数规划的做法:在树上选一组没有交点的边,如果边...

2019-11-23 12:33:52 95

原创 洛谷 P3413 SAC#1 - 萌数(数位DP)

正难则反,考虑统计[l,r] 非萌串,用总数扣去这部分得到答案。非萌串在递推时只要当前数字和前两位不相同即可,但是要额外注意有前导0的情况,因为前导0是可以相等的,并且010这种也是非萌串。考虑前导0后写出了6维的傻逼DP代码:#include<bits/stdc++.h>using namespace std;const int maxn = 1e3 + 10;co...

2019-11-08 23:33:03 256

原创 洛谷 P4317 花神的数论题(数位dp)

用数位dp计算有 N以内的数字 有k 个 1的数字有多少个,然后快速幂。数位dp 直接在二进制位上进行枚举。坑点:1e7 + 7 不是素数,但数位dp 内部无须取模数值不会爆long long代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e7 +...

2019-11-08 17:37:49 172

原创 Codeforce 1245 E. Hyakugoku and Ladders(期望dp,模拟)

题目大意:在一个 10 * 10 的网格图,终点在(1,1),起点在 (10,1),最底行的方向是向右,每一行的方向是下面一行的反方向,在一行的端点处方向是向上。除此之外每个位置可能还有梯子,a[i][j]a[i][j]a[i][j] 表示第 i 行,第 j 列的梯子的长度为 a[i][j]a[i][j]a[i][j],若 a[i][j]=0a[i][j] = 0a[i][j]=0,表示这个位...

2019-11-08 16:17:01 288

原创 Codeforce 1245 F. Daniel and Spring Cleaning(数位 dp + 容斥)

题目大意:在 [l,r] 区间内,找出所有的数字对 (x,y),使得 x + y = x ^ y首先x + y = x ^ y 等价于 x & y = 0设 solve(l,r)solve(l,r)solve(l,r) 解决的 一个数字的范围是 [1,l],另一个数字的范围是 [1,r]。答案可以容斥得到:solve(r,r)−2∗solve(l−1,r)+solve(l−1,l−1...

2019-11-08 14:54:25 130

原创 [cogs2652]秘术「天文密葬法」(01分数规划,长链剖分(继承时每个深度需要加上 val[u] 的处理))

题目大意:给你一棵树,每个点有两个权值ai,bia_i,b_iai​,bi​,你需要找出一条长为m的路径(指路径上点的个数为 m 个),最小化∑ai∑bi\frac{\sum a_i}{\sum b_i}∑bi​∑ai​​。题解:这个式子以及题意就是01分数规划的形式。前缀技能:01分数规划01分数规划对应有一些元素,你需要从中选出 kkk 个,使得∑ai∑bi\displaystyle\...

2019-11-07 20:59:40 211

原创 [BZOJ4543][POI2014]Hotel加强版(长链剖分(长链剖分优化树形DP))

题目大意:在一棵无边权的树上选三个点,使得两两点对的距离相等,问有多少种选法。题解:答案的形式必然如图所示,当确定两个点,这两个点到其 lca 的距离都等于 ppp,那么第三个点一定来自不同子树,且到 lca 的距离也等于 ppp考虑树形 dp:当前根结点为 u,合并第 i 棵子树时:在前 i - 1 棵子树里找一个点 zzz,在第 i 棵子树里找一个点对 (x,y)(x,y)(x,y),...

2019-11-07 19:40:43 171

原创 Codeforce 1243 D. 0-1 MST(补图搜索,MST,bfs)

题意转化为求 由边权为0的边连通的图的连通块的数量cntcntcnt,答案为 cnt−1cnt - 1cnt−1用一个 set 维护 所有还没被访问过的点,然后用 bfs 算法对这个图进行遍历,每次遍历一个连通块,把遍历到的点删掉。最差每一次遍历都会使得 set 的大小减一,复杂度是均摊的O(nlog⁡m)O(n\log m)O(nlogm)代码:#include<bits/s...

2019-11-07 11:51:49 335 3

原创 2019 南昌邀请赛 E.Interesting Trip(长链剖分)

题目大意:在一棵树上求路径长度等于 D,且路径 gcd⁡>1\gcd > 1gcd>1 的路径总数。n≤5∗105,D≤104,ai≤3∗104n \leq 5*10^5,D \leq 10^4,a_i \leq 3*10^4n≤5∗105,D≤104,ai​≤3∗104点分的做法:枚举根节点的因子 ppp (μ(p)≠0\mu(p) \ne 0μ(p)​=0 ,即题解的反...

2019-11-06 22:27:38 312

原创 Codeforce 1009 F. Dominant Indices(长链剖分(模板))

给你一棵树,定义dxid_{xi}dxi​表示 x子树内和 x 距离为 i 的节点数,对每个x求使dxid_{xi}dxi​最大的 i,如有多个输出最小的。有 nlog⁡nn \log nnlogn 的 dsu on tree 的做法(说白了就是树链剖分),dsu on tree可以维护的信息更多,深度信息也很容易维护。这题的数据出到了 10610^6106,如果出题人卡了时间,就要用更优...

2019-11-05 22:27:06 259

原创 bzoj 4774: 修路(斯坦纳树 (答案为多颗森林的情况 + 斯坦纳树不同的写法))

和2019南昌邀请赛A一样的题。由于答案可能是斯坦纳森林,处理方法是对指定点集(这里是点对)提一个点做根结点,并得到这个点集连通的状态 stastasta(例如这题是d 对点对,没对点对连通的状态要拿出来)。由于最后答案某些根节点可能是连通的(即答案并不是 d 棵斯坦纳树,也不是1棵斯坦纳树),对根节点的状态做子集 dpdpdp,最后答案为 dp[(1 << tot) - 1],...

2019-11-02 19:30:54 443

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除