SOL: 我们发现答案就是 跑一边KMP 那么答案就是i-net[i], 我们考虑在trie上跑KMP,我们发现KMP的复杂度是依赖摊还分析的线性复杂度。如果朴素的KMP做法时间复杂度是不对的。 比如这样一个trie: a | a | a / \ b b 复杂度就退化了。那么我们可以考虑对每一个节点 ...
分类:
其他好文 时间:
2018-03-16 13:34:52
阅读次数:
171
Implement pow(x, n). 题目要求很简单,要求实现幂函数,但是如果考虑的太简单那就太天真了,比如像这样写: 这样就没有考虑n为负数或者n为0的情况,即使考虑上,添加进去,也会发现超时,线性复杂度对这道题来说确实太高了。 不妨这样考虑,利用递归把n折半,一直到最后n为1 的简单情况,代 ...
分类:
其他好文 时间:
2018-03-08 15:52:56
阅读次数:
139
难度:α 用时:30 min 题目:🔗 这是个裸贪心题。 题目要求在某数字字符串中删去给定个数的字符,使剩下来的数字最大。 那么不难想到用队列。线性复杂度。0 ms。 每读入一个数,就把之前比较小的拿掉。 注意不能拿太多,否则长度不够。 队满了也不能继续放。(除非有更大的元素可以把队尾的怼下去) ...
题目大意:蓝书P115 不愧是WF的题 不难发现R的个数为L/2 + 2,O的个数为L/2 - 2 三种做法,第一种比较麻烦,dp[i][j][k][l]表示i个R,j个O,第一个元素是(k)R,最后一个元素是(l)R 不难发现i - j > 5无意义,线性复杂度 第二种,压缩状态。 不难发现求得的 ...
分类:
其他好文 时间:
2018-01-18 23:04:08
阅读次数:
185
#include using namespace std; //计算fibonacci数 //方法一:二分递归法,时间复杂度为O(2^n),额外空间复杂度为常数 int RecursiveFibonacci(int n) { return (n < 2) ? n : RecursiveFibonac... ...
分类:
其他好文 时间:
2017-12-06 20:00:24
阅读次数:
152
2017-08-20 15:17:30 writer:pprp list是一种线性复杂度的容器,很快 其他常用的函数: ...
分类:
其他好文 时间:
2017-08-20 17:02:34
阅读次数:
182
设计模式是一些前人对面向对象编程方式进行总结而得出的一些巧妙的编程技巧,通过学习《大话设计模式》这本书,一方面巩固了对c#的学习,还有一方面进一步了解了面向对象编程技巧。模式有非常多种。各有优缺点。可是还要根据实际情况而定。并非不论什么情况下某个模式都适用的,所以某个模式。指的是在某个详细情况下用这 ...
分类:
其他好文 时间:
2017-07-08 21:59:59
阅读次数:
258
关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。 在开始这篇文章之前,大家可以移 ...
分类:
其他好文 时间:
2017-06-09 23:35:36
阅读次数:
232
模拟,在这里用栈模拟,一开始用了结构体数组从首尾两端分别遍历果断超时,复杂度n*n,用栈来模拟是线性复杂度。 ...
分类:
其他好文 时间:
2017-01-05 20:08:18
阅读次数:
175
之前的代码: TLE: 可能需要打表,于是使用打素数表: //TODO 在网上看到一种号称线性复杂度的打表方法,先把手里的活干完再来仔细研究研究 ...
分类:
其他好文 时间:
2016-08-20 21:56:10
阅读次数:
231