随笔分类 -  数据结构 线段树

1
摘要:题目链接:http://codeforces.com/gym/101149/problem/G 题目大意:给你n对数字,为(a[i], b[i]),给你m对数字,为(w[i], c[i])。给n对数字找配对,这个配对必须是m中的,而且m中的每个只能和n中的配对一次。 配对条件,w[i]>=a[j], 阅读全文
posted @ 2017-05-06 15:00 知る奇迹に 阅读(288) 评论(0) 推荐(0)
摘要:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5572 Chiaki has n intervals and the i-th of them is [li, ri]. She wants to delete some inte 阅读全文
posted @ 2017-04-10 19:22 知る奇迹に 阅读(341) 评论(0) 推荐(0)
摘要:3585: mex Description 有一个长度为n的数组{a1,a2,...,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。 有一个长度为n的数组{a1,a2,...,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。 Input 第一行n,m。 第二行为n个数。 从 阅读全文
posted @ 2017-04-05 14:02 知る奇迹に 阅读(149) 评论(0) 推荐(0)
摘要:3339: Rmq Problem Description Input Output Sample Input 7 5 0 2 1 0 1 3 2 1 3 2 3 1 4 3 6 2 7 Sample Output 3 0 3 2 4 HINT Source By Xhr By Xhr http:/ 阅读全文
posted @ 2017-04-05 13:50 知る奇迹に 阅读(256) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/787/problem/D 题目大意:有n个点,三种有向边,这三种有向边一共加在一起有m个,然后起点是s,问,从s到所有点的最短路是多少? 第一种边:u->v w 表示节点u到v有连接一条有向边,权值为w 第二种边:u->[l,r] w 表 阅读全文
posted @ 2017-04-04 13:43 知る奇迹に 阅读(272) 评论(0) 推荐(0)
摘要:http://acm.split.hdu.edu.cn/showproblem.php?pid=5029 题意:n个点的树,m次操作。每次操作输入L,R,V,表示在[L,R]这个区间加上V这个数字。比如[1,2]加上1,[1,3]加上1,那么1这个点就是{1,1},2也是{1,1},3是{1}。全部 阅读全文
posted @ 2017-03-03 19:29 知る奇迹に 阅读(175) 评论(0) 推荐(0)
摘要:4448: [Scoi2015]情报传递 Description 奈特公司是一个巨大的情报公司,它有着庞大的情报网络。情报网络中共有n名情报员。每名情报员口J-能有 若T名(可能没有)下线,除1名大头日外其余n-1名情报员有且仅有1名上线。奈特公司纪律森严,每 名情报员只能与自己的上、下线联系,同时 阅读全文
posted @ 2017-03-01 21:08 知る奇迹に 阅读(150) 评论(0) 推荐(0)
摘要:codeforces Good bye 2016 E 线段树维护dp区间合并 题目大意:给你一个字符串,范围为‘0’~'9',定义一个ugly的串,即串中的子串不能有2016,但是一定要有2017,问,最少删除多少个字符,使得串中符合ugly串? 思路:定义dp(i, j),其中i=5,j=5,因为 阅读全文
posted @ 2017-02-22 11:50 知る奇迹に 阅读(409) 评论(0) 推荐(0)
摘要:题目大意:有n个区间,求k个区间,使得这k个区间相交的区间内数字之和最大。数列的数字均>=0 优先队列思路: 按照左端点sort,然后枚举左端点,假设他被覆盖过k次,然后用优先队列来维护最右端即可。 //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #include 阅读全文
posted @ 2017-01-31 21:46 知る奇迹に 阅读(290) 评论(0) 推荐(0)
摘要:题目大意:给你n个数,m个操作。 有两种操作: 1.U x y 将数组第x位变为y 2. Q x y 问数组第x位到第y位连续最长子序列的长度。 对于每次询问,输出连续最长子序列的长度 思路:用线段树维护上升序列,每个端点维护:左边连续递增的len,右边连续递增的len,中间连续递增的len,左边v 阅读全文
posted @ 2017-01-31 13:59 知る奇迹に 阅读(368) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-01-18 21:40 知る奇迹に 阅读(3) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/722/problem/C 题目大意:给你一个串,每次删除串中的一个pos,问剩下的串中,连续的最大和是多少。 思路一:正方向考虑问题,那么就线段树+分类讨论一下就好了,然后代码中flag表示能否转移 //看看会不会爆int!数组会不会少了 阅读全文
posted @ 2016-10-02 10:54 知る奇迹に 阅读(124) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/675/problem/E 题目大意:有n个车站,每个车站只能买一张票,这张票能从i+1到a[i]。定义p[i][j]为从i到j所需要买的最小票数。问sigma(p)的和是多少。 思路:感觉我的dp定义能力还是太弱了啊,我刚开始还定义成dp 阅读全文
posted @ 2016-09-30 16:18 知る奇迹に 阅读(154) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/719/problem/E 题目大意:给你一串数组a,a[i]表示第i个斐波那契数列,有如下操作 ①对[l,r]区间+一个val ②求出[l,r]区间的和。 定义区间的和为该区间内每个a[i]所对应的斐波那契数列的和。 思路:线段树保存区间 阅读全文
posted @ 2016-09-30 11:55 知る奇迹に 阅读(162) 评论(0) 推荐(0)
摘要:题目大意:给一个字符串,有插入和询问操作,每次往一个位置插入一个字符或者询问第p个位置的字符是什么。 思路:我们离线询问,逆向把所有的字符都插入给线段树,然后再查询就好了,每次都要记得插入线段树的最后的位置,然后要把这个位置给保存下来在O(1)查询即可。 //看看会不会爆int!数组会不会少了一维! 阅读全文
posted @ 2016-09-15 11:16 知る奇迹に 阅读(268) 评论(0) 推荐(0)
摘要:题目大意:给一个数组a,他的顺序是严格的单调增,然后有如下三个操作 ①加入一个val到a数组里面去,加入的位置就是a[i-1]<val<a[i+1] ②删除一个a[i]=val的值 ③查询所有下标i%5=3的值 思路:线段树+离线 首先因为线段树中不支持添加、删除操作的,所以只能离线把所有的val离 阅读全文
posted @ 2016-09-13 21:08 知る奇迹に 阅读(199) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,有n-1条边,每条边都有方向,每个顶点有权值,给出weak pair的定义是val[u]*val[v] <=k,u是v的祖先,问有多少对这样的顶点 思路:创建线段树,通过dfs动态创建,每次都不断更新。因为我们只能是根节点开始往下的,所以我们遍历到兄弟节点的之前要把其他的兄弟节 阅读全文
posted @ 2016-09-11 23:03 知る奇迹に 阅读(520) 评论(0) 推荐(0)
摘要:所谓dfs序就是将之前的顺序进行修改,获得一个新的序列,然后再新的序列下进行一系列其他的操作 一般题目给你的都会是一棵树,然后点之间都是无关的,我们首要的任务就是先把这些序列重新排。然后再根据dfs的序列进行构造其他的树 ①CF Educational Codeforces Round 6E 将序列 阅读全文
posted @ 2016-07-12 20:32 知る奇迹に 阅读(198) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2016-05-21 14:01 知る奇迹に 阅读(0) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1394 或者是我自己挂的专题http://acm.hust.edu.cn/vjudge/contest/view.action?cid=117125#problem/D 思路的话就是我们找出右边比他小的和左边比他小 阅读全文
posted @ 2016-05-20 21:19 知る奇迹に 阅读(78) 评论(0) 推荐(0)

1