离散化
用到离散化算法的题目
QWsin
这个作者很懒,什么都没留下…
展开
-
UVa12171 雕塑
题目大意我就不讲了= = 题解 由于内部有密闭空间所以直接在长方体内部BFS肯定不行,那么考虑在整个立方体周围套一个空气层(具体实现可以加上第0和第501行之类的)。通过对空气层进行BFS解决问题。 给每一个格子一个颜色,比如col[i][j][k]=1表示为空气,0表示未到过,2表示有长方体。然后沿着0去BFS,如果遇到2的话就一定是一个表面积的部分,加上即可,BFS过程中一个变量记原创 2016-03-23 15:48:15 · 1305 阅读 · 0 评论 -
BZOJ 3289 Mato的文件管理
题目http://www.lydsy.com/JudgeOnline/problem.php?id=3289题解 实际上就是求区间逆序对个数,第一次写树状数组求逆序对,不过感觉还是比归并排序好些。(其实感觉归并排序比较难写),因为有很多询问,所以离线搞,然后用莫队算法(第一次写莫队,感觉好神奇,还不很明白复杂度的保证)。 还有不能偷懒啊,,我感觉这份代码刚写完的时候应该有10+处bug 代码/原创 2016-07-19 16:03:23 · 380 阅读 · 0 评论 -
LA 3971 组装电脑
题目:传送门题解: 大意是给一些零件(属性:种类,名称(没用),加格,品质),电脑的品质取决于最低的配件品质,问有的钱能买的最高的电脑品质。 这个题一看就是二分,O(n^2 * logn * T)的算法也很好想,就是排序之后二分下标,贪心可check。字符串的话,我使用的是类似离散的方法编号而避免了用map,因为map+string会很慢(但是string还是很慢),虽然实际上复杂原创 2016-08-16 21:33:51 · 369 阅读 · 0 评论 -
codevs3037 线段覆盖5 离散化DP
题目codevs3037 线段覆盖5 题解 不懂某些人为什么要用BIT = = 。这样会带坏小朋友的啊喂(虽然说刷到大师了写个BIT就是一分钟的事)。不过你强行加个log会很慢的阿喂,何况这题的log大概是20。其实我写的也不好= =并没有1A而且错误还比较多 dp[i]表示到离散化之后的端点i之前最大价值。然后把线段按右端点排序,然后转移方程是这样的 dp[i原创 2016-10-13 16:21:12 · 529 阅读 · 0 评论 -
LA 3695 Distant Galaxy
题目LA 3695 Distant Galaxy题解没啥好说的,先离散, 我是枚举两行,固定两行之后就成了序列上的问题了。sum[i]表示两行一共的横向前缀和,f[i]表示第i列在这两行中间的有多少,这样对于确定的两列i,j有ans=f[j]+f[i]+sum[j-1]-sum[i],然后发现对于确定的i,找到一个位置j使得sum[j-1]+f[j]最大即可,所以倒着枚举左端点,可以做到O(1)最大原创 2016-12-07 11:38:14 · 420 阅读 · 0 评论