摘要: 这道题的构造法真的复杂……要推一堆公式……这道题写了几天了……还是没写出来……一开始简单的觉得先左右来回, 然后上下来回, 然后把剩下的执行完了好了, 然后就WA。然后换了个思路, 觉得是贪心, 觉得只要保证当前留下的最多就ok了, 然后又WA。这里不能每一步贪心, ... 阅读全文
posted @ 2018-05-17 18:51 Sugewud 阅读(222) 评论(0) 推荐(1) 编辑
摘要: 知道是构造法但是想了挺久没有什么思路。然后去找博客竟然只有一篇!!https://blog.csdn.net/no_name233/article/details/51909300然后博客里面又说貌似UVa数据有问题过不了, 而他的代码我也懂, 就没有自己写一遍了。但... 阅读全文
posted @ 2018-05-14 18:22 Sugewud 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 这道题看了半天没看出什么规律, 然后看到别人的博客, 结论是当n为奇数且逆序数为奇数的时候无解, 否则有解。但是没有给出证明, 在网上也找到详细的证明……我也不知道是为什么……求逆序对有两种方法, 树状数组和归并排序, 当然这道题数据很小可以直接暴力, 我三种都写了。... 阅读全文
posted @ 2018-05-12 20:08 Sugewud 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 这道题参考了https://www.cnblogs.com/20143605--pcx/p/4889518.html这道题就是枚举矩形的宽, 然后从宽再来枚举高。具体是这样的, 先把所有点的高度已经0和最高点储存起来, 排个序。然后就可以枚举所有可能的矩形的宽, 然后... 阅读全文
posted @ 2018-05-12 16:35 Sugewud 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 这道题貌似可以用滑动窗口或者单调栈做, 但是我都没有用到。这道题要求连续子序列中和乘上最小值最大, 那么我们就可以求出每一个元素, 以它为最小值的的最大区间的值, 然后取max就ok了。那么怎么求呢?我可以初始化出一个第一个小于当前元素的的元素的位置, 也就是说初始化... 阅读全文
posted @ 2018-05-12 12:56 Sugewud 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 这道题说连续子序列, 马上就想到滑动窗口。注意窗口里面的元素中小于等于k的才是有效元素。记录窗口里面有效元素的个数, 满足了之后开始缩短窗口, 如果左端点不是有效元素或者即使窗口中存在这个元素的个数大于1, 即使删去还是满足窗口内有1到k这些元素的时候, 左端点就删去... 阅读全文
posted @ 2018-05-12 10:05 Sugewud 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 暴力n的四次方, 然而可以用中途相遇法的思想, 分左边两个数和右边两个数来判断, 最后合起来判断。一边是n平方logn, 合起来是n平方logn(枚举n平方, 二分logn)(1)两种比较方式是相反的, 所以第二次可以直接把数组倒过来做, 代码可以省很多。(2) 我们... 阅读全文
posted @ 2018-05-11 21:31 Sugewud 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 先排序, 然后每个线段先放右端点, 然后往下放, 如果不能放就整体往左移动, 当不能往左移动的时候就ans++开始下一个整块。判断能不能向左移动要用一个变量储存每个已经放了的区间中线段与左端点距离的最小值。#include#include#define REP(i, ... 阅读全文
posted @ 2018-05-10 17:13 Sugewud 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 参考了https://www.cnblogs.com/dwtfukgv/p/5645446.html(1)直接二分答案。说实话我没有想到, 一开始以为是贪心, 以某种策略能得到最优解。但是想了很久没想出来, 后来看了博客发现因为显然答案是单调的, 可以用二分来做。看到... 阅读全文
posted @ 2018-05-09 18:56 Sugewud 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 我看到数据范围只有500, 第一反应枚举所有的可能,然后求出每种可能的最小次数。但是不知道怎么求最小次数。我想的是尽量让一次交换可以让两个不在应该在的位置的数字到原来应该在的位置的数字, 这样可以消除两个差异, 否则就交换到该到的地方, 消除一个差异。但是怎么实现??... 阅读全文
posted @ 2018-05-09 17:07 Sugewud 阅读(121) 评论(0) 推荐(0) 编辑