2020年6月17日

【思维】几何+map——leetcode直线上最多的点数

摘要: 好像以前在cf上碰到过类似的题,但是也思路上又不太一样。。 首先我们确定用map:mp来存每条直线的解析式ax+by+c=0 那么必然要两两枚举直线,然后判有多少个点在直线上:这样复杂度貌似是O(n^3)的,显然要优化一波 可以发现很多点其实不在直线上,那么我们要转换下统计的方式,改成一条直线一条直 阅读全文

posted @ 2020-06-17 21:41 zsben 阅读(171) 评论(0) 推荐(0) 编辑

【经典】bfs+建图+TSP状压dp——leetcode 寻宝

摘要: 这道题dp部分不难,就是建模和写起来麻烦。。 首先分析给定的地图,我们可以发现只有那些石堆,起点,终点,机关所在地是有用的(不超过100)个点的信息是有用的 再进行分析,可以以将起点终点机关当做点,石堆当做边来建图 然后我们就可以在无向图上进行dp 经典的tsp问题,dp[S][i]表示访问的点集状 阅读全文

posted @ 2020-06-17 19:50 zsben 阅读(320) 评论(0) 推荐(0) 编辑

二分+map+字符串hash/后缀自动机——leetcode 最长重复字串

摘要: 这题显然可以用后缀自动机的endpos集合来做,复杂度也应该是所有解法里最优秀的O(n) 但是写起来太麻烦了,用二分+字符串hash可以轻松过掉 ps:本题hash冲突比较严重,但是用自然溢出反而不会冲突。。另外用unordered_map比map要快很多 class Solution { publ 阅读全文

posted @ 2020-06-17 17:23 zsben 阅读(181) 评论(0) 推荐(0) 编辑

c++11 中的 lambda表达式

摘要: 最近做题老被lambda表达式折磨(c++的class内部sort函数里不让自定义cmp函数,只能丢一个匿名函数进去),索性把这块东西学一学 首先是c++11 的lambda: [函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体} 下面 阅读全文

posted @ 2020-06-17 15:22 zsben 阅读(176) 评论(0) 推荐(0) 编辑

【数学】【思维】数学+模拟+贪心——leetcode 寻找最近的回文数

摘要: 这题要真推算起来还是比较复杂的,但是可以先猜个结论: 首先肯定是前面一半复制到后面一半:这是很显然的,所以答案字符串由前面一半所控制 我们把前面一半+1,前面一半-1都考虑进去,如果没有进位退位(即字符串长度保持不变的情况下),那么这三个字符串足以覆盖答案出现的范围 下面再考虑进位和退位,显然进位的 阅读全文

posted @ 2020-06-17 14:40 zsben 阅读(189) 评论(0) 推荐(0) 编辑

【经典】单调队列+尺取法——leetcode 和至少为 K 的最短子数组

摘要: 老经典题了,不过如果不是这题我差点忘了单调队列的性质。。平时做的几乎都是单调栈 这题和区间的和相关,那么首先弄一个前缀和出来(记得偏移一位,在前面补上个0),然后再遍历这个前缀和数组 遍历过程中维护一个单调队列deque 维护单调性:第i个元素进队时弹出后面所有不小于它的 尺取更新答案:完成上面一步 阅读全文

posted @ 2020-06-17 10:48 zsben 阅读(163) 评论(0) 推荐(0) 编辑

导航