随笔分类 -  ACM随笔

记录一些做过的题的解
摘要:单调栈 阅读全文
posted @ 2018-08-22 20:55 gaawing 阅读(169) 评论(0) 推荐(0)
摘要:题目地址在这儿 求取:以某矩形g[i]为最小值的区间的左右端点,得到一个临时解。所有临时解中的最大值即为解。 求取区间的方法可以用单调栈,也可以用下面这种十分简洁的类似于递归的方法。下面这种解法求出来的区间是开区间,也正是因为开区间,所以跳转很方便。 L[i]是以第i根柱子为最小值的左开区间点。若g 阅读全文
posted @ 2018-08-22 17:14 gaawing 阅读(240) 评论(0) 推荐(0)
摘要:单调栈 集合 阅读全文
posted @ 2018-08-22 16:05 gaawing 阅读(180) 评论(0) 推荐(0)
摘要:栈的规律分析问题。 阅读全文
posted @ 2018-08-22 15:06 gaawing 阅读(121) 评论(0) 推荐(0)
摘要:STL set;前缀和; 阅读全文
posted @ 2018-08-21 20:05 gaawing 阅读(146) 评论(0) 推荐(0)
摘要:这题还是有点意思的,有个数据可以试试: 8 7 6 5 6 3 2 4 1。答案是2而非3。问题就在于:拦截系统用完并非消失,以后有可以用的时候还是可以用的。 那么对于每个导弹,贪心地用被利用得已经高度最低的拦截系统去处理它,如果没有能处理的时候就增加个拦截系统。知道思路之后自己写就行了。 阅读全文
posted @ 2018-06-09 01:22 gaawing 阅读(207) 评论(0) 推荐(0)
摘要:令dp[i]为前i个人买好票的最少花费。 那么这个状态可由2种状态转移而来:1.上一个人和自己组队买票 2.上一个人不和自己组队买票 即可得:dp[i] = min(dp[i-1]+cost[i], dp[i-2]+together[i]); 阅读全文
posted @ 2018-06-09 00:31 gaawing 阅读(164) 评论(0) 推荐(0)
摘要:令dp[i][j]为i时刻j位置时的最大馅饼量。由于每个状态只能由临近的3个状态转移而来,所以可以较为简单的确定递推式。 第一个要思考的点:正推还是逆推?逆推的好,正推的话不知哪些状态可走,而逆推的话,是在当前状态下确定之前的状态,所以不存在这个问题。 第二个思考的点:为什么答案是dp[0][6], 阅读全文
posted @ 2018-06-08 23:58 gaawing 阅读(118) 评论(0) 推荐(0)
摘要:需要用线段树维护区间的3个变量: 区间最长的:[左连续前缀、右连续后缀、最大连续子区间] 的元素个数 其中红线左侧的是第m个元素,右侧是m+1个元素。 更新完左右子树想要pushUp操作的时候,父亲的左前缀必然是左子的前缀,若是左子树满了,则左连续可能还要加上右子树的左前缀。同理,父亲的右后缀必然是 阅读全文
posted @ 2018-06-02 17:26 gaawing 阅读(174) 评论(0) 推荐(0)
摘要:对区间进行操作:操作0是区间内的每个点的值val = int(sqrt(val)); 操作1是查询区间和。 题目链接 因为是区间操作,第一感觉是lazy,但是这题lazy在push_down的时候无法快速的对区间进行更新,所以变成点操作+剪枝。留意到每个点的值必然是正整数,且开根几次之后最终都会稳定 阅读全文
posted @ 2018-06-02 11:25 gaawing 阅读(161) 评论(0) 推荐(0)
摘要:有两个长度可能是250*250的数字串,串内元素两两不同,求最长公共子串。 常规的O(n^2)解法不论是时间或空间都无法解决,办法是转化成求最长上升子序列。 假设是有串1和串2。先给串1的元素按输入顺序来一个映射,称为映射1。比如说 1 7 5 4 8 3 9 映射成 0 1 2 3 4 5 6。那 阅读全文
posted @ 2018-05-24 16:42 gaawing 阅读(189) 评论(0) 推荐(0)
摘要:题目链接 问的是n个不一样的数,大小交替,或者小大交替的种类数量。 n个数,想象成[1,n]的自然数即可。 我们假设大小交替得到的长度为i的排列数为dp1[i],小大交替得到的长度为i的排列数为dp2[i],因为是对称的,其实应该有dp1=dp2,我们要计算的总和sum=dp1+dp2。 我们从小到 阅读全文
posted @ 2018-05-23 15:11 gaawing 阅读(188) 评论(0) 推荐(0)
摘要:线段树、离散化、扫描 阅读全文
posted @ 2018-05-22 13:43 gaawing 阅读(204) 评论(0) 推荐(0)
摘要:离散化处理、线段树区间更新 阅读全文
posted @ 2018-05-21 16:33 gaawing 阅读(183) 评论(0) 推荐(0)
摘要:最短路径, Disjkstra算法变形, PATL2-001.紧急救援 阅读全文
posted @ 2017-07-15 23:35 gaawing 阅读(316) 评论(0) 推荐(0)
摘要:求最长公共子串 Longest Common Subsequence 阅读全文
posted @ 2017-07-12 12:26 gaawing 阅读(248) 评论(0) 推荐(0)