线段树
文章平均质量分 85
sprite_
这个作者很懒,什么都没留下…
展开
-
poj 3468 A Simple Problem with Integers(线段树、延迟更新)
A Simple Problem with IntegersTime Limit: 5000MS Memory Limit: 131072KTotal Submissions: 74705 Accepted: 22988Case Time Limit: 2000MSDescriptionYou have N i原创 2015-07-26 10:58:37 · 729 阅读 · 0 评论 -
poj 3246 Balanced Lineup(线段树)
Balanced LineupTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 38942 Accepted: 18247Case Time Limit: 2000MSDescriptionFor the daily milking, Farme原创 2015-07-23 23:52:35 · 819 阅读 · 0 评论 -
poj 2777 Count Color(线段树、状态压缩、位运算)
Count ColorTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 38921 Accepted: 11696DescriptionChosen Problem Solving and Program design as an optional course原创 2015-07-27 11:27:58 · 970 阅读 · 1 评论 -
hdu5239 Doom(线段树单点更新区间查询+数论)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5239思路:这题的mod是个很特殊的数。。对于任何数,连续乘以29次以上,取模就不再变化了。这样题目就好做了,我只要通过区间查询,看当前区间里面的数中最小连乘次数是否超过29,如果超过29,就不再对点进行更新。注意:由于mod很大,所以我两个数(mod-1)+(mod-1)时会爆原创 2015-10-07 20:09:47 · 472 阅读 · 0 评论 -
2014-2015 ACM-ICPC, Asia Tokyo Regional Contest G題 (线段树区间更新)
题目大意:给一个括号序列,刚开始一定是平衡的(也就是括号都匹配)。现在改变其中某一个括号,然后需要再改变一个括号(可以是自己)使得序列依旧保持平衡。问改变哪个括号可以达到目的,当然改变的括号越左边越好。思路:对于这个括号序列,我们可以将'('设为1,')'设为0,那么就能算出他们的前缀和。比如序列()(()),前缀和就是1,0,1,2,1,0。可以发现如果是平衡的序列,所有的前缀和原创 2015-11-09 13:00:12 · 733 阅读 · 0 评论 -
Codeforces Gym 100796E Permutation Polygon(线段树)
题目链接:http://codeforces.com/gym/100796/problem/E题目大意:给一些点连成线以后,问总共有多少个交点。思路:对于两条线(x,y)和(a,b)来说,如果x所以对于线(a,b)来说,只要a在(x,y)里面,同时b在(x,y)外面,就能够保证有交点。所以我们可以用线段树维护这个区间上的点的数量,为了保证x代码:#include原创 2015-11-16 11:59:02 · 769 阅读 · 0 评论 -
hdu 5592 ZYB's Premutation(线段树求逆序数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5592范围:N思路:BC出题人的题解还是挺清楚的:设f_ifi是第ii个前缀的逆序对数,p_ipi是第ii个位置上的数,则f_i-f_{i-1}fi−fi−1是ii前面比p_ipi大的数的个数.我们考虑倒着做,当我们处理完ii后面的数,第ii个数就是原创 2015-12-07 21:52:11 · 510 阅读 · 0 评论 -
codeforces 602B Approximating a Constant Range(线段树+尺取法)
题目链接:http://codeforces.com/problemset/problem/602/B题目大意:给一段长为N的序列,现在要找一段区间,要求区间里的最大值和最小值之差不超过1,问最大的区间长度是多少。思路:在众多的方法前,我选择了最省力又暴力的线段树= =利用尺取法,定义左右两个指针,维护一段满足条件的最大长度的区间。然后在右指针变化过程中,一旦发现这段区原创 2015-12-08 14:29:04 · 619 阅读 · 0 评论 -
Codeforces 622C Not Equal on a Segment(线段树)
题目链接:http://codeforces.com/contest/622/problem/C题目大意:给一个长为n 的序列,m个询问。每次询问一个区间[l,r]和数x。问这个区间里面任意一个不是x的数的位置。范围:n,m思路:可以考虑线段树。利用线段树维护区间上的最大值和最小值。每次询问时看当前区间上的最大和最小值是否与x不同,如果不同,就先往左子树看,如果左子原创 2016-02-16 20:25:00 · 695 阅读 · 0 评论 -
zjnu 1762 U(想法、线段树)
题目链接:http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1762题目大意:有n道菜,每道菜分别有两种价格A和B。如果要买k道菜,则除了第一道要花A的价格以外,其他的k-1道菜都以B的价格买下。现在要分别得到买1~n道菜要花的最少的钱。范围:n思路:钱要花最少,在买多道菜的时候我们自然是希望B的价格越小原创 2016-03-22 21:21:51 · 676 阅读 · 0 评论 -
ZOJ 3911 Prime Query(线段树区间更新+点更新)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3911题目大意:对区间进行操作,判断询问区间里面有多少个素数。思路:裸的线段树区间更新和单点更新。这里要用一个素数筛法将10^7以内的素数全部先筛一遍。代码:#include#include#include#define原创 2015-10-12 21:50:33 · 438 阅读 · 0 评论 -
hdu 5493 Queue(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5493思路:这题目跟以前做过的一道真的一模一样!!!!0、是poj上的2828 Buy Tickets,附上链接:http://blog.csdn.net/aaaaacmer/article/details/46932785套到这道题目里面:线段树记录的就是对于第i个人来说,原创 2015-10-02 22:38:43 · 554 阅读 · 0 评论 -
poj 2528 Mayor's posters(线段树区间覆盖、离散化)
Mayor's postersTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 49385 Accepted: 14304DescriptionThe citizens of Bytetown, AB, could not stand that the cand原创 2015-07-28 11:12:05 · 1563 阅读 · 0 评论 -
hdu 1394 Minimum Inversion Number(线段树)
Minimum Inversion NumberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13797 Accepted Submission(s): 8423Problem DescriptionTh原创 2015-07-28 23:11:02 · 546 阅读 · 0 评论 -
hdu 2795 Billboard(线段树单点更新)
BillboardTime Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14337 Accepted Submission(s): 6148Problem DescriptionAt the entrance原创 2015-07-29 11:31:47 · 717 阅读 · 0 评论 -
hdu 3074 Multiply game(线段树)
Multiply gameTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1820 Accepted Submission(s): 611Problem DescriptionTired of playing原创 2015-07-17 20:44:14 · 1006 阅读 · 0 评论 -
poj 2828 Buy Tickets(线段树)
Buy TicketsTime Limit: 4000MS Memory Limit: 65536KTotal Submissions: 15426 Accepted: 7688DescriptionRailway tickets were difficult to buy around the Lunar New Yea原创 2015-07-17 21:09:28 · 619 阅读 · 0 评论 -
hdu 1698 Just a Hook(线段树)
ust a HookTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21293 Accepted Submission(s): 10648Problem DescriptionIn the game of Do原创 2015-07-18 20:15:41 · 381 阅读 · 0 评论 -
poj 1436 Horizontally Visible Segments(线段树、区间覆盖)
Horizontally Visible SegmentsTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 4645 Accepted: 1706DescriptionThere is a number of disjoint vertical line seg原创 2015-07-30 11:30:14 · 864 阅读 · 0 评论 -
codeforces 581B Luxurious Houses(线段树点更新,区间查询)
题目链接:http://codeforces.com/problemset/problem/581/B题目大意:给n个不同高度的房子,要求当对于第i个房子来说,他要严格的比后面的房子都高。思路:题目意思读懂以后,很容易想到,对于第i个房子,我只要找到(i+1,n)的最大值M,然后第i个房子值变为M+1即可。所以就是简单的点更新,区间查询。代码:#include原创 2015-09-28 21:41:50 · 744 阅读 · 0 评论 -
hdu 5475 An easy problem(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5475思路:这题直接模拟会出问题:因为他要求的只是输出结果取模。如果计算过程中取模,会导致x变化,令后续的操作得出的答案出现问题。如果计算过程中不取模,会溢出。所以我们考虑另一种方法:对于每次操作,我们可以用一个数组将他的值存起来。如果是1操作,就令a[i]变为要乘的数y。如原创 2015-09-27 20:52:30 · 656 阅读 · 0 评论 -
codeforces #343 div2 D. Babaei and Birthday Cake(DP+离散化+线段树优化)
题目链接:http://codeforces.com/contest/629/problem/D题目大意:给n个圆柱体蛋糕,现在要堆一个大蛋糕,要求体积大的放在上面同时编号大的不能放在编号小的下面。问最大的体积是多少。范围;n思路:很容易想到:dp[i]=dp[j]+a[i](i>j&&a[i]>a[j])。所以就有了O(n^2)的算法,但是范围太大,会超时。原创 2016-02-27 19:00:24 · 567 阅读 · 0 评论