讲道理我之前暂时跳过染色的题是因为总觉得有什么很高端的算法来query 直到我做了F题(ZOJ 1610)才发现就是个暴力统计.....也对 也就几万个长度单位而已.... F就不po上来了 选了有点难度的D题 需要用到离散化 单纯的离散化又会碰到后染色覆盖前染色的 所以要在每两个差距大于1的位置之
分类:
其他好文 时间:
2016-02-28 13:50:47
阅读次数:
187
题目传送门 题意:训练指南P248 分析:第一个操作可以用并查集实现,保存某集合的最小高度和最大高度以及城市个数。运用线段树成端更新来统计一个区间高度的个数,此时高度需要离散化。这题两种数据结构一起使用,联系紧密。 #include <bits/stdc++.h> using namespace s
分类:
其他好文 时间:
2016-02-26 20:38:23
阅读次数:
237
All Possible Increasing Subsequences Time Limit:3000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Appoint description: Description An increasing
分类:
编程语言 时间:
2016-02-25 15:12:17
阅读次数:
177
開始就直接用延迟标记搞了下。最后发现内存肯定会爆了。数据太大了。 问了瓜神,原来应该用离散化来做这题,详细见凝视 #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <climits>
分类:
其他好文 时间:
2016-02-24 15:35:26
阅读次数:
326
好像这道题比小Z的袜(mei)子更简单 要先离散化QAQ 1 #include<algorithm> 2 #include<iostream> 3 #include<cstdlib> 4 #include<cstring> 5 #include<cstdio> 6 #include<string>
分类:
其他好文 时间:
2016-02-23 08:28:19
阅读次数:
207
题目链接:点击打开链接
题意:给出n个圆柱体的地面半径和高, 要求只能有一个直接放在桌子上, 其他的要放在他上面, 第i个能放在第j个上面的条件是:当且仅当第i个的体积大于第j个且j
思路:一看就是一个DP, 而且状态很容易表示, d[i]表示到第i个为止能得到的最大总体积。 转移到 max(d[j]) + a[i], (j a[j])。 但是n非常大, 显然要优化, 因为第二层循环...
分类:
其他好文 时间:
2016-02-21 15:47:07
阅读次数:
247
题意:n个圆柱形蛋糕,给你半径 r 和高度 h,一个蛋糕只能放在一个体积比它小而且序号小于它的蛋糕上面,问你这样形成的上升序列中,体积和最大是多少 分析:根据他们的体积进行离散化,然后建树状数组,按照序号进行循环,每次查询体积比它小的蛋糕形成的最大体积 注:因为是按照序号进行循环,所以序号一定是严格
分类:
编程语言 时间:
2016-02-21 11:38:09
阅读次数:
159
Mayor's posters Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 54067 Accepted: 15713 Description The citizens of Bytetown, AB, could not s
分类:
其他好文 时间:
2016-02-19 20:28:07
阅读次数:
234
某年NOIP day1 压轴。 然而?首先我们展开这个式子,然后发现这是一个排序不等式的模型。 然后?!!双重离散化,首先离散化a,b,然后记录a数组每一个数应该到达的位置。 然后?我们的目的就变成了将a归并升序(降序)排列,求最少的操作数。 归并排序求逆序对。 #include<iostream>
分类:
其他好文 时间:
2016-02-15 16:19:08
阅读次数:
119
思路1:树状数组+离线处理,对所有的w离散化处理,边dfs边使用树状数组更新左右w的情况。思路2:主席树,边bfs边建树。结点信息存储cnt,然后在线查询。树状数组。 1 /* 4605 */ 2 #include <iostream> 3 #include <sstream> 4 #include
分类:
其他好文 时间:
2016-02-15 00:49:43
阅读次数:
228