摘要: 题目链接:HDU-4614-Vases and Flowers 题意是有n个花瓶在一个线段上,用0~n-1来标记,有两种操作,第一种是从x开始插花,一直向后插y个花,如果一个花瓶里已经插有花,则不能再插,求第一个插花的位置和最后一个插花的位置,如果一朵花都插不了的话,输出"Can not put... 阅读全文
posted @ 2017-01-17 12:59 mod_y_v 阅读(186) 评论(0) 推荐(0)
摘要: 题目链接:HDU-3974-Assign the task 题意是给定一棵树,然后一种操作是指定一个点,这个点及这个点的的子树被染色,另一种操作是指定一个点,问这个点的颜色。 可以通过dfs树将这棵树放在线段上,记结点u在线段上的位置是pos[u],以结点u为根的子树的结点总数是cnt[u],那... 阅读全文
posted @ 2017-01-16 18:08 mod_y_v 阅读(202) 评论(0) 推荐(0)
摘要: 要求最大连续子区间,那么就要使用线段树维护三个东西:①区间最长连续前缀ll②区间最长连续后缀rl③区间最长子区间ml 建树时,让ll,rl,ml都是r-l+1。 更新时,根据要更新的结点向下,当下方结点的rl,ll,ml更新完毕后,更新当前结点的rl,ml,ll。 查询时,更具要查询的结点p向下... 阅读全文
posted @ 2017-01-16 16:43 mod_y_v 阅读(136) 评论(0) 推荐(0)
摘要: 题目链接:HDU-4027-Can you answer these queries? 一个数最多开平方8次,所以加个剪枝,当区间和等于区间元素数时,不再递归下去, 然后要注意eps开大一点,因为原始数字是long long 的范围。 #include#include#includeusing... 阅读全文
posted @ 2017-01-15 18:15 mod_y_v 阅读(146) 评论(0) 推荐(0)
摘要: #include#includeusing namespace std;typedef long long ll;const int maxn=1e5+7;int a[maxn=r) { a[now]=c; return ; } int mid=(l... 阅读全文
posted @ 2017-01-15 15:13 mod_y_v 阅读(103) 评论(0) 推荐(0)
摘要: 与点修改的区别就是update和query的时候,增加一个add数组,update的时候修改这个add数组。如果树上一点表示的区间在要修改的区间内,那么修改他的add和sum就行,如果这个点表示的区间部分在要修改的区间外,那么将他的add下移,并更新下移区间的sum,这样一次update中最多修... 阅读全文
posted @ 2017-01-15 14:22 mod_y_v 阅读(126) 评论(0) 推荐(0)
摘要: 建树,修改,求值。。 #include#include#define LL(x) x>1; build(LL(now),l,mid); build(RR(now),mid+1,r); a[now]=max(a[LL(now)],a[RR(now)]);}void update... 阅读全文
posted @ 2017-01-15 12:05 mod_y_v 阅读(111) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2016-12-31 11:15 mod_y_v 阅读(109) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2016-12-25 22:06 mod_y_v 阅读(105) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2016-12-23 23:05 mod_y_v 阅读(121) 评论(0) 推荐(0)