Orz 叶队
矩阵乘法,即矩阵相乘→_→,公式:C[i][j] = Sigma(A[i][k] * B[k][j])
写成代码形式就是这样↓
for(int i=1;i<=n;i++) for(int j=1;j<=p;j++) for(int k=1;k<=m;k++) c[i][j]+=a[i][k]*b[k][j];
……嘛,很简单的啦,给道题先→_→
Orz 叶队
矩阵乘法,即矩阵相乘→_→,公式:C[i][j] = Sigma(A[i][k] * B[k][j])
写成代码形式就是这样↓
for(int i=1;i<=n;i++) for(int j=1;j<=p;j++) for(int k=1;k<=m;k++) c[i][j]+=a[i][k]*b[k][j];
……嘛,很简单的啦,给道题先→_→
@山哥@SYC
balabala什么叫循环DP呢~~ 所谓循(zui)环(duan)DP(lu),就是一种山哥发明的DP方式,能解决带后效性的DP问题~~
感觉好高大上啊!!跪求如何进行循环DP~
图论是很基础的一项内容,我们把目光从DP转向图论,哦不,把DP以图论的方式思考:
啊,真是太惨了,刚刚做一道RMQ模板题,发现我以前打的倍增模板是错的,于是我就水一下RMQ的倍增算法。。。全当复习
RMQ(区间最值问题),给出一列数,有Q个询问,每次询问 l~r 之间的最小值。
显然,每次暴力循环找最小值是不够快的,所以需要一个算法或数据结构实现快速查询区间最值。
好久没写题解了……
题目描述:有N(1≤N≤2000)个节点,M(1≤M≤10000)条边。你要保留一些边,使得这个图连通且最大的边最小,输出最大边。
解题思路:→_→将边按权值从大到小排序,枚举从头开始删的边数~每次判一遍是否联通,感觉这样很对的说~,→_→理想中的最坏情况时间复杂度会到达O(NM)即遍历删几条边的复杂度*bfs复杂度,啊咧不会超啊→_→,不过我用的是更快的方法↓
其实早就想存个档了(→_→)
优先队列,说白了就是会有急诊病人插队的情况,它基本不符合先进先出的准则。
优先队列也定义在头文件<queue>中,用 “priority_queue<int>Q" 声明,Q是一个越大的整数优先级越高的优先队列
当然也可以自定义优先级比较方法,与sort里的cmp类似,可用结构体完成,例如,要实现定义一个”个位数小的整数优先级高”的优先队列,构造结构体cmp:
今天就来口胡一下栈和队列吧,大神右上角↗
其实就是想存个档以后忘了好看下
#include<stack> 要使用堆栈需要调用stack头文件
stack给出了5种基本操作:
1.入栈:如s.push(x);
2.出栈:如 s.pop().注意:出栈操作只是删除栈顶的元素,并不返回该元素。
Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com