摘要: 一、栈 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉, 阅读全文
posted @ 2016-11-14 00:15 A.S.KirigiriKyouko 阅读(870) 评论(0) 推荐(0) 编辑
摘要: 一、01背包 有N件物品和一个容量为V的背包。第i件物品的价格(即体积,下同)是w[i],价值是c[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 这是最基础的背包问题,总的来说就是:选还是不选,这是个问题<( ̄ˇ ̄)/ 相当于用f[i][j]表示前i个背包装入容 阅读全文
posted @ 2016-11-06 21:03 A.S.KirigiriKyouko 阅读(50375) 评论(6) 推荐(8) 编辑
摘要: 一、vector 为了节省空间,有时我们会使用动态数组vector。 定义动态数组 vector<类型名>变量名 vector<int>que //定义que为一个int类型的动态数组 vector<char> a //定义 a 为一个char 类型的动态数组 vector<data> c //其中 阅读全文
posted @ 2016-11-06 12:50 A.S.KirigiriKyouko 阅读(576) 评论(1) 推荐(0) 编辑
摘要: 欧拉筛法求素数 首先,我们知道当一个数为素数的时候,它的倍数肯定不是素数。所以我们可以从2开始通过乘积筛掉所有的合数。 将所有合数标记,保证不被重复筛除,时间复杂度为O(n)。代码比较简单↓_↓ if(i % prime[j] == 0) break;←_←这一步比较难理解解释: 首先,任何合数都能 阅读全文
posted @ 2016-11-06 01:19 A.S.KirigiriKyouko 阅读(550) 评论(0) 推荐(0) 编辑