随笔分类 -  数据结构 树状数组

摘要:4448: [Scoi2015]情报传递 Description 奈特公司是一个巨大的情报公司,它有着庞大的情报网络。情报网络中共有n名情报员。每名情报员口J-能有 若T名(可能没有)下线,除1名大头日外其余n-1名情报员有且仅有1名上线。奈特公司纪律森严,每 名情报员只能与自己的上、下线联系,同时 阅读全文
posted @ 2017-03-01 21:08 知る奇迹に 阅读(150) 评论(0) 推荐(0)
摘要:题目大意:给你一个长度为n的数组a,然后数值大的可以合并数值小的,且合并了以后该数组的长度-1.给你一个长度为k目标数组b,问,是否可以从a数组变到b数组,是就yes并且输出步骤。否就输出no 思路:因为合并的时候要删除某一个数字,很容易想到用树状数组来维护。然后分析一下就可以得到b中第i个数,一定 阅读全文
posted @ 2016-11-01 20:51 知る奇迹に 阅读(128) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/724/problem/D 题目大意:给你一个串,从串中挑选字符,挑选是有条件的,按照这个条件所挑选出来的字符集合sort一定是最后选择当中最小的。 从pos=0开始挑选,每次挑选pos~pos+m-1这些位置中的字符,然后下一次再从之前挑 阅读全文
posted @ 2016-10-10 14:24 知る奇迹に 阅读(135) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-27 22:38 知る奇迹に 阅读(1) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/362 题目大意:给你一个序列,用冒泡排序法让他变为非递减的序列最少需要几次。在冒泡交换之间,你有一个swap操作,该swap操作是交换任意两个数组元素的位置,问在该操作后,所再需要的冒泡交换次数是多少,并输出方案数 思路:树状数组维护一下 阅读全文
posted @ 2016-09-21 21:55 知る奇迹に 阅读(556) 评论(0) 推荐(0)
摘要:题目大意:给你n个人,每个人都有一个id,有m个询问,每次询问一个区间[l,r],问该区间内部有多少的id是连续的(单独的也算是一个) 思路:做了那么多离线+树状数组的题目,感觉这种东西就是一个模板了,23333,反正都是定义右区间的。 这题的关键难度就是如何定义id是连续的呢。我们每次往区间里面放 阅读全文
posted @ 2016-09-14 22:56 知る奇迹に 阅读(175) 评论(0) 推荐(0)
摘要:HDU 3938 题目大意:给你一个长度为n的数组a,定义区间[l,r]的val为区间内所有不同的数值之和。现在有m个询问,每次询问一个区间,问区间的val是多少。 思路:将所有的询问按照右端点排序。然后暴力枚举右区间,然后对之前出现过的val做一个标记即可,每次都更新这个标记就好了。 具体的和HD 阅读全文
posted @ 2016-09-14 20:59 知る奇迹に 阅读(178) 评论(0) 推荐(0)
摘要:题目大意:给你一个长度为n的数组,问[L,R]之间<=val的个数 思路:就像标题说的那样就行了。树状数组不一定是离散化以后的区间,而可以是id //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #include <bits/stdc++.h> using name 阅读全文
posted @ 2016-09-13 22:39 知る奇迹に 阅读(181) 评论(0) 推荐(0)
摘要:题目大意:长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种. 子段就是表示是要连续的a[] 思路:固定右端点,预处理出所有的gcd,每次都和i-1的gcd比较,然后不断放入gcd即可。 然后就是树状数组的更新,枚举右端点即可。然后我们知道,大区间不如小区间来的实惠 阅读全文
posted @ 2016-09-12 15:45 知る奇迹に 阅读(538) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/703/problem/D 题目大意:给你一个长度为n数组,有q个询问,每次询问一个区间[l,r],这个区间的val就是所有数值为偶数个的数的亦或值。 思路:先求出所有区间的亦或和的val,然后利用树状数组离线维护,然后用所有区间^树状数组 阅读全文
posted @ 2016-09-09 21:23 知る奇迹に 阅读(242) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-08-21 20:31 知る奇迹に 阅读(7) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-08-18 23:13 知る奇迹に 阅读(5) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/313/problem/B 题目大意 给一个区间,问你这个区间里面有几个连续相同的字符。 思路: 表示个人用树状数组来写的。。。了解了树状数组的本质就行了。 当然用sum[r]-sum[l]也是可以的 阅读全文
posted @ 2016-06-07 22:01 知る奇迹に 阅读(190) 评论(1) 推荐(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)