摘要:
输入:给定一个文件,里面最多含有n个不重复的正整数(也就是说可能含有少于n个不重复正整数),且其中每个数都小于等于n,n=10^7。输出:得到按从小到大升序排列的包含所有输入的整数的列表。条件:最多有大约1MB的内存空间可用,但磁盘空间足够。且要求运行时间在5分钟以下,10秒为最佳结果。分析:下面咱... 阅读全文
摘要:
直接上代码吧,看似容易,却也有要注意的地方啊,还是要练习才行 1 //500万亲合数问题,亲和数就是真因子只和A[A[m]]=m,真因子是不包括他本身的 2 //方法,采用的很巧妙,通过因子找2,3,4,5,6.....,往里放数的方法 3 #include 4 #include 5 using... 阅读全文
摘要:
思路很简单,就是通过向两边扩展的方法,找出最大的,注意要分成奇数和偶数两种情况,都要计算才行。 1 //最长回文子串,就是利用了回文数的另一种思想,从中间想两边扩展的思想,很有意思 2 #include 3 using namespace std; 4 5 int maxhuiwenzichua... 阅读全文
摘要:
非常简单,就当练个手吧 1 //单链表逆序问题,其实很容易的,就是把指针指向给变一下,注意的几个问题 2 //(1)如果就一个元素,不算头结点,直接返回 3 //(2)注意头结点最后要单独处理问题 4 #include 5 using namespace std; 6 7 typedef str... 阅读全文
摘要:
bitset可以用来处理位图问题,用位可以大大减少占用的空间内存,但是位图问题适合处理不重复的,在一定范围内的整数问题。用两个位图可以处理只出现一次问题#include bitset bit;//初始化会默认都为0。bitset用法bitset最大支持到多少?理论上只要内存够大就可以,跟数组一样细节... 阅读全文
摘要:
(1)最长递增子序列问题有两种方法:(1)动态规划方法(2)类似二分查找的方法O(nlogn)动态规划方法: 以i结尾的序列的最长递增子序列和其[0, i - 1]“前缀”的最长递增子序列有关,设LIS[i]保存以i结尾的最长递增子序列的长度:若i = 0,则LIS[i] = 1; 若i > 0,... 阅读全文