摘要: 同样是紫书上的题。 紫书上并没有给出每一个三角形所贡献的的权值的计算方法,我这里就擅作主张,定义成点权的乘积和好了。 那么做法是DP,这里注意设状态的方式(我这么设是为了使需要求解的问题区间变得连续)。 记Vi 为第i个顶点。 设Ti, j 为Vi-1到Vj的最小积和。 Ti, j = min{Ti 阅读全文
posted @ 2017-10-24 22:03 yohanlong 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 由于我不会矩阵,所以这道DP我是根据方程直接写的。 f(i,j) = min(f(i,k) + f(k + 1, j) + a[i - 1] * a[k] * a[j]) 在实现技巧上应用了记忆化搜索。 阅读全文
posted @ 2017-10-24 10:03 yohanlong 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 思路完全模仿lrj白书。 25题斩。 具体而言,我们发现两个矩形之间是包含关系,比如说A包含于B,我们可以认为,A可以推出B,同理若B可以推出C,则A也可以推出C。 这就好像是一个DAG,于是本题转化成了求DAG上的最长路问题。 我们只需要对于每一个点都dp一下就好了。 阅读全文
posted @ 2017-10-23 15:15 yohanlong 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 奇偶性转成xor问题 map的应用,xor到集合的映射使问题大大简化。 bitcount()的写法 中途相遇法的应用。 阅读全文
posted @ 2017-10-23 11:19 yohanlong 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题意是求最大子立方体的和 Sol 降维 + 二维前缀和。 即是对于某一维,比如x,我们把(y,z)的二维前缀和保存在x里面。 也就是这一句。 然后整一个O(n5)的枚举,对x进行dp。(这样实际上也可以理解为用三维表示了一个立方体) 本题还有一个坑点,不要把inf开太小,对于最大数小于231的题目, 阅读全文
posted @ 2017-10-21 12:07 yohanlong 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 题意是给出平面上的n个点,找一个矩形使得边界上包含的点最多。 Sol 经典套路是减小枚举的范围。 最暴力的方法是枚举四条边界然后O(n)判断,一共的时间复杂度是O(n5)。 优化的方法是只枚举矩形的上下边界,用奇技淫巧确定左右边界。(一种类似前缀和的思想) 枚举完上下边界之后只需要O(n)扫一遍处理 阅读全文
posted @ 2017-10-21 10:47 yohanlong 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题意是求最短子序列使得和>=给定的S,ai>=0。 前缀和是必然的,因为涉及到子序列和。 尝试枚举终点,对于终点j,只需要找到满足Bj - Bi-1 >= S的最大的i。(因为长度要尽量短) 由于Bn是递增的,那么随着j的增大,相应的i也要增大。 故用一个单调栈实现即可。 实现见代码 阅读全文
posted @ 2017-10-20 22:07 yohanlong 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题面见lrj蓝书。 这题学习了三个东西。 1.stringstream http://www.cnblogs.com/yohanlong/p/7700281.html 2.STL太慢。 3.Floyd判圈算法。 大意是让两个跑步速度不同的小孩往前跑,如果路径有环,那么跑得快的一定会追上跑得慢的。 如 阅读全文
posted @ 2017-10-20 17:23 yohanlong 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 这个东西贼有用,大意是方便地实现了字符串与数字的互相转化。 头文件: 定义: 那么怎么转换呢? 这样就可以了,现在ss里面就保存了int型x的信息。 那么怎么把它变成一个字符串呢? 这时s就是x的字符串表示了。很像cin/cout的一个东西。 字符串转int型反过来处理就可以了。 值得注意的一点是, 阅读全文
posted @ 2017-10-20 16:48 yohanlong 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 考完noip,我就要投入到壮烈的文化课学习事业当中去了。。。 至于考得怎样。。。嘛,不是很想讲。 只能说暂且把这次比赛当作是“要多刷题,少颓废”的提醒我的东西吧。 阅读全文
posted @ 2016-11-21 09:44 yohanlong 阅读(111) 评论(0) 推荐(0) 编辑