快速幂long long fpow(long long a,long ,long b,long long mod) {long long res = 1;while(b) {if(b & 1) res = (res * a) % mod;a = (a * a) % mod;b >>= 1;}return res;
}
原文:https://www.cnblogs.com/xiaoxingaa/p/14722862.html
0x00 引入矩阵,顾名思义,就是由数构成的矩形阵列比如这样的:$\begin{array}{l}\begin{bmatrix}2&3&4\0&7&13\c&\alpha&\sqrt5\end{bmatrix}\\end{array}$就是一个3*3的矩阵矩阵在信息学乃至数学里面的用处都非常广泛,下面就来介绍下它的一些基本知识,以及常用的地方。本文同时还会介绍矩阵快速幂以及快速矩阵乘法。0x01 何为矩阵矩阵的定义其实就是上面那样的啦......定义一个n行m列的矩阵为由n*m个数构成的矩形阵列,其中“数...
词向量:将词语"嵌入"到一个N维空间,使得词语相近的词语放到相近的位置。机器翻译类不类似于矩阵的变换?谷歌出品的一个工具Word2Vec,用于入门。句向量?段向量?文档向量?很多事情向量化,可以解决很多问题。 传统的one-hot 编码的原来是,有多少个字就有多少个维度.科[1,0,0,0,0,0,0,0]学[0,1,0,0,0,0,0,0]one hot -- >词向量表(全连接的大矩阵)-->输出(该词的矩阵)Embedding层就是one hot 层。 时间序列:每次作预测都是一个序列...
扫雷玩得好还是有点好处的......这个题一开始像从后向前按照第一排的数字进行DFS 发现自己真傻,先不说这种情况下每个数字的填写情况很多, 还要处理相邻位置的问题。所以可以对每一位有没有地雷进行枚举。处理每一位的时候,要保证上一个数字是合理的,否则不用进行下去了,类似回溯,注意have变量的处理就好了。#include <iostream>
#include <stack>
usingnamespace std;
//最长 暗示dfs
//遇到3 和 0 其实只有一种情况
//遇到2 和...
研一零零散散用了一些统计算法,在此简单梳理下,力求用电梯演讲法则去阐述每种算法模型(这是初哀,最后,呵呵了)。但自己理解不深,还需要进一步努力。更重要的是复用了他人的智慧。 统计学习概述 关于统计学习,首先推荐李航老师著作的一本书《统计学习方法》。在此引用里边一句话来定义统计学习:统计学习(statisticallearning)是关于计算机基于数据构建概率模型并运用模型对数据进行预测与分析的一门学科。从中可见,统计学...
和石子合并很像, 为了对环状进行处理, 我们可以把输入数据复制一份接连在后边. 这样在最后的结果枚举起点找最大即可.注意这里代价的计算, 因为我们的data[i]只记录了珠子的头珠子的尾部即是下一个珠子的头部.//因为计算dp[i][j]时需要用到dp[i][k] k比j小 所以j顺序dp[k][j] k比i大 所以i逆序 k插入即可for (int i = 2*n-1; i >=1 ; --i){for (int j = i; j <= 2*n; ++j){dp[i][j] = 0;for (int k = i; k < j ; ++k) dp[i][j] = ma...
一、如何分析一个“排序算法”排序算法的执行效率1. 最好情况、最坏情况、平均情况时间复杂度第一,有些排序算法会区分,为了好对比做一下区分。第二,对于要排序的数据,有的接近有序有的接近无序。有序度不同的数据对于排序的执行时间肯定是有影响的,我们要知道在不同的数据下的性能表现。2. 时间复杂度的系数、常数、低阶时间复杂度是一个增长趋势,它在表示的时候会忽略系数、常数、低阶。但是在实际的开发中需要考虑。3.比较...
XGBoost原理:https://www.jianshu.com/p/7467e616f227 python实现:https://www.cnblogs.com/harekizgel/p/7683803.html 算法优势和调参:http://www.cnblogs.com/mfryf/p/6293814.html 原文:https://www.cnblogs.com/zhenpengwang/p/10898637.html
KMP算法 从零开始大部分来自他人博客,蒟蒻只是总结学习引言
字符串匹配。给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置.char *str = "bacbababadababacambabacaddababacasdsd";
char *ptr = "ababaca";暴力解法如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个字符;
如果失配(即S[i]! = P[j]),令i = i - (j - 1),j = 0。相当于每次匹配失败时,i 回溯,j 被...
一、最长递增序列的问题描述:求一个整数序列的最长递增子序列,子序列不要求是连续的。例如:Input:4,6,9,6,7,6,3,8,10;Output:5二、解决方法:1、用动态规划的方法解决。从问题我们可以知道,我们最终得到的最长递增子序列,其任意一段子序列也是对应序列中的最长子序列。这样说可能不好理解,就以上面的例子来说:最长子序列为:4,6, 7, 8, 10。在这段子序列的子序列里选一个,例如:4,6,7。则4,6,7也是4,6,9,6,...
摘抄自:https://segmentfault.com/a/1190000003554858#articleHeader2题目:Given a binary tree, find the maximum path sum.The path may start and end at any node in the tree.For example: Given the below binary tree, 1/ 2 3
Return 6.思路:首先我们分析一下对于指定某个节点为根时,最大的路径和有可能是哪些情况。第一种是左子树的路径加上当前节点,第二种是右子树的路径加上当前节点,第三种是左右子树的路径加上...
不相交集合 故名思意就是一种含有多个不相交集合的数据结构。典型的应用是确定无向图中连通子图的个数。其基本操作包括:Make-Set(x):建立一个新的集合,集合的成员是x;Union(x,y): 将包含x和y的集合合并为一个集合;Find-Set(x): 返回指向包含x的集合的指针;下面是一个例子,(a)是一个无向图,(b)是使用不相交集合来找连通子图的个数。做法是初始为各个顶点为一个集合,然后遍历各个边,把边的端点的集合进行合并,当处理完所有...
台阶问题:问题描述:
一个台阶总共有n级,没一次都可以选择跳1级,或者跳2级。
求总共有多少种跳法,并分析算法的时间复杂度。
分析:
如果只有一阶,f (1)= 1,有两阶,有两种跳法,分两次跳,每次一级,或者是一次跳2级。推广到n阶台阶,(n>2),第一次跳的时候又两种选择,如果是第一次跳一级,那么跳法数目等于f(n-1) ,另外一种是第一次跳2级,此时跳法数组等于f(n-2),所以总的跳法f(n) = f(n-1)+f(n-2)
类似fibonacci...
非常简单的DP如果dp[i,j]表示从0到i 和 从0到j 这两段的相似度,那么可以知道每个dp[i,j]是由三种状态转化过来的第一种 当dna1[i]==dna2[j]的时候 dp[i-1,j-1] + 1 长度加1第二种 否则 从下面两个状态过来那就是dp[i][j-1] 和 dp[i-1][j]//注意因为是顺序遍历 这两个都已经计算过取两者最大即可。#include <iostream>
#include <cstring>
#include <algorithm>
usingnamespace std;//最长公共子序列长度 LCS dpchar dna1[1000+1...
为了准备数学建模的比赛,我在网上学习了几种建模算法,当然这里有很多是从一些博客神那里学到的,加上了一点自己的理解,,在此真心感谢那些分享的大神。 算法一:层次分析法, 首先要明确层次分析法可以解决那些问题,顾名思义这里的层次可以理解为不同的影响因素,例如影响粮食价格的因素,影响手机市场的因素。就是在分析这些因素对于结果的影响程度通过最后得出的结果来做决策,是提供方案和措施的算法。这...