计算机
Wen_spid
这个作者很懒,什么都没留下…
展开
-
背包问题
各种背包问题的模板假设i为放进背包的第i个物品,j为背包的容量,v[i]为 物品的价值,w[i]为物品容积,n为物品个数,m为背包容量。一,01背包一维:for(int i=1;i<=n;i++) for(int j=m;j>=w[i];j--) f[j] = max(f[j],f[j-w[i]] + v[i]);二维:for(int i=1;i<...原创 2019-10-07 19:24:45 · 134 阅读 · 0 评论 -
高精度算法
高精度乘法:A*B problem#include<bits/stdc++.h>using namespace std;const int l = 2001;const int ll= 4001;string mul(string a,string b) { string ans; int na[l]={0},nb[l]={0},nc[ll]={0}; int la...原创 2019-08-17 20:08:44 · 109 阅读 · 0 评论 -
深搜广搜基本概念
一,深度优先搜索:事实上,深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。其实这就像是一棵树的前序遍历。它从某个顶点v出发,访问此顶点,然后从v的未被访问的领接点出发深度优先遍历图, 直至图中所有和v有路径相通的顶点都被访问到。若图中尚有顶点未被访问到,则另选图中一个...原创 2019-08-12 23:45:26 · 286 阅读 · 0 评论 -
动态规划的两个基本例子
一,币值最大化问题:给定一排n个硬币,其面值均为正整数c1,c2,…cn, 这些整数并不一定两两不同。请问如何选择硬币,使得在其原始位置互不相邻的条件下,所选硬币的总金额最大。上述最大可选金额用F(n) 表示。为了得到F(n) 的递推关系,我们将所有可行的选择划分为两组:包括最后一枚硬币的和不包括最后一枚硬币的。第一组中,可选硬币的最大金额等于cn + F(n - 2), 即最后一枚硬币的面...原创 2019-08-14 21:44:58 · 1048 阅读 · 0 评论 -
浅谈线段树的一些基本操作
简单说一说线段树的一些功能和应用先说一说定义:线段树,是一种二叉搜索树。它将一段区间划分为若干单位区间,每一个节点都储存着一个区间。它功能强大,支持区间求和,区间最大值,区间修改,单点修改等操作。线段树建树:void build_tree(int arr[], int tree[], int node, int left, int right){ //建立线段树 if(left ...原创 2019-08-08 15:59:24 · 134 阅读 · 0 评论 -
day11
洛谷P1086花生采摘题目描述鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!――熊字”。鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图11)。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先...原创 2019-07-11 22:20:54 · 93 阅读 · 0 评论 -
快速幂和取余运算
洛谷题解上看到的,觉得很详细,转载过来分享一下。https://www.luogu.org/blog/costudy/base-2转载 2019-07-07 10:30:37 · 199 阅读 · 0 评论 -
KMP算法个人理解
感谢这个视频让我的思路豁然开朗:阿三哥给你讲KMP。匹配字符串的方法中的暴力匹配法相信大家都知道,我就不说了。接下来说说时间复杂度更低但比较难懂的KMP算法。首先我...原创 2019-07-10 14:51:06 · 140 阅读 · 0 评论 -
牛客小白月赛16
小雨的三角形:看题点这儿题解说明:看到这个题解才知道原来这也能找出规律来,但是这个规律属实不好找。好像其实还有个规律就是从第二层开始,每层的总和是上一层的2倍加2.这样就可以递推了。AC代码:#include<bits/stdc++.h>using namespace std;const int mod=1e9+7;int main(){ long long s...原创 2019-07-13 16:46:32 · 119 阅读 · 0 评论 -
有效括号的嵌套深度
题目:有效括号的嵌套深度class Solution {public: vector<int> maxDepthAfterSplit(string seq) { int l=0,r=0; //标记连续记录的左括号数量,右括号数量 int len=1; vector<int> flag(1000...原创 2019-07-08 11:27:32 · 352 阅读 · 0 评论 -
素数的筛选方法
一,埃式筛法转载 2019-07-08 23:20:50 · 206 阅读 · 0 评论