上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 20 下一页
摘要: 前言:关于区间最值问题的求解,我们一般采用线段树来维护区间最值,得到了O(NlogN)的算法。但对于区间第k值问题,我们应该如何解决呢?本文将介绍一种基于线段树思想衍生出来的新结构——划分树,来解决这个问题。1 划分树其实,划分树和线段树的区别并不大,可以归纳为两点: 1.1 划分树每一个区间[L,R]维护的是一个一维数组[L..R]。 1.2 划分树每一个根结点[L,R]中前[(R-L+1)/2]小的点组成左子树,后[(R-L+1)/2]大的点组成右子树。2 划分树求区间k值 我们首先修改一下思考方式,原问题变成在已经sorted的数列中找出第k个在区间[s,t]中的数字。 先给出一... 阅读全文
posted @ 2013-03-29 14:06 yefeng1627 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 何冬州的百度空间Blog本文的另一版本:http://hi.baidu.com/wsktuuytyh/blog/item/396a934ac679680208f7ef2c.html信息革命先驱者/数学电脑爱好者注: wsktuuytyh 即何冬州 三字的五笔编码主页博客相册|个人档案|好友|个人中心|i贴吧写新文章素数计数公式全面拉丁化改写-小有改进-Meissel公式-梅塞尔-Lehmer公式-莱梅=勒梅尔-筛法三种形式-孟庆余公式2012年06月13日 星期三6:17本文标题:素数计数公式全面拉丁化改写-小有改进-Meissel公式-梅塞尔-Lehmer公式-莱梅=勒梅尔-筛法三种形式-孟 阅读全文
posted @ 2013-03-29 13:16 yefeng1627 阅读(3072) 评论(2) 推荐(0) 编辑
摘要: 题意: N个城市,由N-1条边连接, 有A,B两人占领i城市,花费分别为 A[i], B[i]. 相邻的则花费减半,(A占领城市x,则与x连通的城市,A再占领则只要A[x]/2, B类似)解法: dp[i][j][k] : 表示占领第 i 座城市, j = 0 则为 A占领 j = 1 则为 B占领 k = 0 则全部花费一半 k = 1 则其子孙节点中存在全额花费的 若此时遍历完 子节点 v,后回到其父节点 u . 有如下情况 一 对于 dp[u][0][0] , 第u个城市,由A占领,且子孙节点中由A占领的都是付 一半花费,可能有的情况 1. 以u为根的子树,全部... 阅读全文
posted @ 2013-03-28 18:48 yefeng1627 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目大意 链接http://acm.hdu.edu.cn/showproblem.php?pid=3397 在一个由N个0或1构成的序列上进行五种操作: 0 a b : 将区间[a,b]序列置为0 1 a b : 将区间[a,b]序列置为1 2 a b: 将区间[a,b]序列0,1互换 3 a b: 输出区间[a,b] 为1的数量和 4 a b: 输出区间[a,b] 连续1的最大长度解题思路 分析题目的5种操作, 对于 0, 1, 3 操作,可以理解为区间覆盖,然后区间求和。这个对于普通的线段树是很好做的。 对于 2,4 操作, 涉及到区间的旋转,以及子区间... 阅读全文
posted @ 2013-03-27 15:56 yefeng1627 阅读(634) 评论(0) 推荐(0) 编辑
摘要: A小Q系列故事——为什么时光不能倒流 转换成秒后模拟即可View Code #include<stdio.h>#include<stdlib.h>int main(){ int T; scanf("%d", &T); while( T-- ){ int h1,m1,s1; int h2,m2,s2; int mod = 12*60*60; scanf("%d:%d:%d",&h1,&m1,&s1); scanf("%d:%d:%d",&h2,&m2,&s2 阅读全文
posted @ 2013-03-22 22:42 yefeng1627 阅读(214) 评论(0) 推荐(0) 编辑
摘要: A小Q系列故事——电梯里的爱情 模拟,同一楼层下去的人不需要多次开门~~~View Code #include<stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>using namespace std;const int N = 110;int a[N],b[N], n;int main(){ int T; scanf("%d",&T); while( T-- ){ scanf("%d", &n); for(int 阅读全文
posted @ 2013-03-22 22:33 yefeng1627 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 官方解题报告http://www.nbutoj.com/005/暂时在忙 OJ文档和源码检测,堆了几场报告没写,之后补上。给一句话跪了::死月敢不敢出难点,你们给他们定位多大难度他们就是多少水平。 阅读全文
posted @ 2013-03-20 19:19 yefeng1627 阅读(146) 评论(0) 推荐(0) 编辑
摘要: A.跑步 二分枚举距离,然后构图用并查集判联通数量是否大与等于N,时间复杂度是 Nlog(N),因为所给坐标较大,注意求解距离时强制转换,防止溢出~View Code #include<stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>#include<math.h>using namespace std;const int N = 510;const double esp = 1e-8;int n, m, st[N], rank[N];double dis[ 阅读全文
posted @ 2013-03-19 21:12 yefeng1627 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 官方解题报告http://blog.watashi.ws/1515/zojmonthly1010/A题 签到题,╮(╯▽╰)╭,因为 int -> char* 错了一次,还是很粗心。View Code #include<stdio.h>#include<stdlib.h>#include<string.h>#include<string>using namespace std;const int N = 101100;char str[N];bool isch( char ch ){ if( (ch>='a'& 阅读全文
posted @ 2013-03-19 21:05 yefeng1627 阅读(230) 评论(0) 推荐(0) 编辑
摘要: ACows and Primitive Roots 原根,目前只有暴力求解,看了百度百科才知道。因为 x < p, 且 p <= 2000View Code #include<stdio.h>#include<stdlib.h>int p;int pow( int x, int n ){ int res = 1; while( n ){ if( n&1 ) res = (res*x)%p; x = x*x%p; n >>= 1; } return res;}bool legal( int x ){ if( pow( x... 阅读全文
posted @ 2013-03-19 12:50 yefeng1627 阅读(256) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 20 下一页

Launch CodeCogs Equation Editor