2019年7月28日

牛客网多校训练第四场C sequence

摘要: (牛客场场有笛卡尔树,场场都不会用笛卡尔树。。。自闭,补题心得) 题目链接:https://ac.nowcoder.com/acm/contest/884/C 题意:给出两个序列a,b,求max{min a[l,r]*sum b[l,r]} 一个比较显然的做法是通过线段树/ST表维护区间最值,不过n 阅读全文

posted @ 2019-07-28 02:55 CUPXSR 阅读(214) 评论(0) 推荐(0) 编辑

2019年7月23日

HDU多校训练第一场 1012 Sequence

摘要: 题目链接:acm.hdu.edu.cn/showproblem.php?pid=6589 题意:给出一个长度为n的数组,有m次操作,操作有3种1,2,3,问操作m次后的数组,输出i*a[i]的异或和 操作k的实质是进行一次O(n)的计算,a[i]+=a[i-k] (i-k>0) k=1时,我们可以发 阅读全文

posted @ 2019-07-23 03:53 CUPXSR 阅读(677) 评论(0) 推荐(3) 编辑

2019年7月21日

牛客网多校训练第二场D Kth Minimum Clique

摘要: 链接:https://ac.nowcoder.com/acm/contest/882/D来源:牛客网 Given a vertex-weighted graph with N vertices, find out the K-th minimum weighted clique. A subset 阅读全文

posted @ 2019-07-21 17:39 CUPXSR 阅读(163) 评论(0) 推荐(0) 编辑

2018年10月4日

HDU 2167 状压dp方格取数

摘要: 题意:给出一个数表,规定取出一个数后周围的八个数都不可取,求可获得的最大数字和 思路:状态压缩dp,每一行的取数方法为状态,显然,由于取数规则的限制,可取的状态并不是 1<<size_col,而是非常有限的,我们可以预处理出状态(不超过1600个),大大降低时间复杂度, 运行时间:140ms 阅读全文

posted @ 2018-10-04 00:21 CUPXSR 阅读(149) 评论(0) 推荐(0) 编辑

2018年9月14日

HDU 5726 线段树+dp

摘要: 题意:给出一个序列,后q次询问,求给定区间gcd及整个序列有多少个序列的gcd和这个值相同 首先线段树维护区间gcd建树,之后预处理出每个gcd有多少个子序列,这时需要dp, dp[i][tmp]表示以第i个数a[i]结尾的序列中有dp[i][tmp]个连续子序列的gcd值为tmp,dp[i]是一个 阅读全文

posted @ 2018-09-14 21:54 CUPXSR 阅读(153) 评论(0) 推荐(0) 编辑

2018年8月10日

POJ 3667 线段树区间合并裸题

摘要: 题意:给一个n和m,表示n个房间,m次操作,操作类型有2种,一种把求连续未租出的房间数有d个的最小的最左边的房间号,另一个操作时把从x到x+d-1的房间号收回。 建立线段树,值为1表示未租出,0为租出,线段树实现区间合并,必须记录区间左右端点的状态,这样才能实现区间合并,用lsum记录以左端点开始的 阅读全文

posted @ 2018-08-10 16:41 CUPXSR 阅读(230) 评论(0) 推荐(0) 编辑

2018年8月7日

HDU 3308 线段树求区间最长连续上升子序列长度

摘要: 题意:两种操作,Q L R查询L - R 的最长连续上升子序列长度,U pos val 单点修改值 阅读全文

posted @ 2018-08-07 03:02 CUPXSR 阅读(696) 评论(0) 推荐(0) 编辑

2018年8月5日

HDU 4325 离散化+树状数组 或者 不使用树状数组

摘要: 题意:给出一些花的开放时间段,然后询问某个时间点有几朵花正在开放。 由于ti<1e9,我们需要先将时间离散化,然后将时间点抽象为一个数组中的点,显然,我们需要进行区间更新和单点查询,可以考虑线段树与树状数组两种做法,一般的,树状数组是用来维护区间和与单点修改的,那么,如何通过树状数组进行区间更新和单 阅读全文

posted @ 2018-08-05 22:45 CUPXSR 阅读(123) 评论(0) 推荐(0) 编辑

2018年7月31日

Restoring Road Network Floyd

摘要: 问题 C: Restoring Road Network 题目描述 In Takahashi Kingdom, which once existed, there are N cities, and some pairs of cities are connected bidirectionally 阅读全文

posted @ 2018-07-31 15:45 CUPXSR 阅读(155) 评论(0) 推荐(0) 编辑

HDU 3607 线段树+DP+离散化

摘要: 题意:从左往右跳箱子,每个箱子有金币数量,只能从矮处向高处跳,求最大可获得金币数,数据规模1<=n<=1e5. 显然是一个dp的问题,不难得出dp[ i ] = max(dp[j] )+val [ i ] ,j < i ; 第一眼会想到o(n^2)的算法,显然会超时,这个时候就需要用线段树维护最大值 阅读全文

posted @ 2018-07-31 15:32 CUPXSR 阅读(121) 评论(2) 推荐(1) 编辑

导航