很明显直接二维是作死的。。所以给按X点排下序,当然离线处理询问时差分的点会方便些。。 对Y坐标就用BIT维护就行。。 但由于坐标比较大,所以还要离散化= = 处理起来略麻烦但代码并不难写 1 //#include<bits/stdc++.h> 2 #include<cstdio> 3 #includ
分类:
其他好文 时间:
2016-02-14 00:26:06
阅读次数:
236
树的中序遍历是唯一的. 按照数据值处理出中序遍历后, dp(l, r, v)表示[l, r]组成的树, 树的所有节点的权值≥v的最小代价(离散化权值).枚举m为根(p表示访问频率):修改m的权值 : dp(l, r, v) = min( dp(l, m-1, v) + dp(m+1, r, v) +
分类:
其他好文 时间:
2016-02-13 23:03:07
阅读次数:
268
题目链接:[kuangbin带你飞]专题十五 数位DP A - Beautiful numbers题意ps:第一道数位dp,题真好,虽然是参考大牛方法悟过才a,但仍收获不少。
求一个区间内的Beautiful numbers有多少个。Beautiful numbers指:一个数能整除所有组成它的非0数字。
例如15可以被1和5整除,所以15是Beautiful numbers。
思路
Be...
分类:
其他好文 时间:
2016-02-13 06:51:16
阅读次数:
301
最大不相交集合的数量。思路是dp[i][j]表示已经有i个不相交集合下一个不相交集合的最右边界。离散化后,通过贪心解。 1 /* 4343 */ 2 #include <iostream> 3 #include <sstream> 4 #include <string> 5 #include <ma
分类:
其他好文 时间:
2016-02-13 00:27:30
阅读次数:
276
首先将矩形离散化成一系列线段, 这里以横边为例, 我们将横边离散化之后按照纵坐标排序, 纵坐标相同的时候始边在前。 然后对于一个线段,对应区间的pos[j]++, 如果pos[j]由0-》1 或者由 1 -> 0那么ans++. 这个过程还可以使用线段树优化, 代码如下: /* ID: m15002
分类:
其他好文 时间:
2016-02-10 17:39:57
阅读次数:
241
给N个矩形的端点坐标,求矩形覆盖面积和。 原理很简单,从左到右扫描,线段树记录的是纵向覆盖的长度。区间更新。因为坐标是实数而且很大,所以需要离散化。 WA+RE+CE+MLE+。。。一共错了二十多次。用了最蠢的办法,最后发现错在初始化的时候,构造函数参数我写成了int。。蠢哭。。。 AC代码: #i
分类:
其他好文 时间:
2016-02-02 14:35:23
阅读次数:
218
[Crane et al. 2013]提出了利用热运动方程来计算网格测地线的方法,具体算法过程如下图所示: 第一步:热运动方程用来描述热的传播状态: 将热运动方程离散化并整理后得到: 其中:id为单位矩阵,t为时间间隔,Δ为离散Laplacian算子,ut为t时刻的热状态,u0为初始时刻的热状态。
分类:
编程语言 时间:
2016-01-29 16:11:43
阅读次数:
1164
半个月的期末。。然后CZL和CTL神犇就刷了几百道题orz!!!! 区间K大值,主席树入门 这个数据结构就是先离散化后对[1-i]建树,每次多建个相关的链(好神奇的做法) 然后这样就要记录儿子了,所以数组写起来好难看所以就用了指针 1 //#include<bits/stdc++.h> 2 #inc
分类:
其他好文 时间:
2016-01-28 00:42:23
阅读次数:
204
[题目]:如果对于所有的i = 3,4,..,n,有 ai= ai-1+ ai-2, 那么整数序列a1,a2,...,an就被称作Fibonacci数列。给出一个整数数列c1, c2, ..., cm,你需要找出这个数列里的最长Fibonacci子序列(注意,子序列不能改变给出的整数数列顺序)。输入...
分类:
其他好文 时间:
2016-01-26 15:19:11
阅读次数:
190
计算畸形区域的周长比面积的扫描要麻烦些,原因就在不重叠区域的处理,同一段高度可能要重复叠加所以线段树的结点里要多维护三个东西:times:区间里不重叠的区间数比如说第一个区间是1~5,第二个是2~6,,第三个是9~10,那前两个可以合成1~6,和第三个独立,则这个整体的times为2为了维护time...
分类:
其他好文 时间:
2016-01-25 22:40:35
阅读次数:
267