![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
文章平均质量分 61
run_session
这个作者很懒,什么都没留下…
展开
-
动态规划 背包问题
动态规划 背包问题0-1背包朴素版本#include<iostream>using namespace std;int n,m;int v[N],w[N];int f[N][N];int main(){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>v[i]>>w[i]; for(int i=1;i<=n;i++) { for(int j=0;j<=m;j原创 2021-02-17 23:16:37 · 160 阅读 · 0 评论 -
图论 dijkstra floyd spfa
图论数据结构两种存法邻接表临接矩阵dijkstra用邻接矩阵存的时候还需要处理下重边,如果用邻接表存就不用处理。矩阵1个边只能有1个值,所以要处理,保证存的是最小值,但邻接表重边也可以存多次,在算法里保证最小。优化版Dijkstra用堆来维护,所以其实堆里存的是一个pair堆需要在维护的时候保留编号int dijkstra(){ memset(dist,0x3f,sizeof dist); dist[1]=0; priority_queue<PII,vector<原创 2021-02-16 11:49:24 · 151 阅读 · 0 评论 -
哈希 开放寻址法 拉链法
文章目录哈希1.原子操作1.1.插入1.1.1.开放寻址法1.1.2.拉链法1.2.查询1.2.1.开放寻址法1.2.3.拉链法哈希mod的数一般取一个质数离2的整数次幂尽量远大于10万的第一个质数,1e5+3;1.原子操作1.1.插入1.1.1.开放寻址法h[find(x)]=x;1.1.2.拉链法void insert(int x){ int k=(x%N+N)%N; e[idx]=x; ne[idx]=h[k]; h[k]=idx++;}1.2.查询1.原创 2021-02-10 11:58:26 · 339 阅读 · 0 评论 -
堆 小根堆 大根堆 数组写法
文章目录1.数据结构定义建堆2.原子操作2.1.down操作2.2.up操作2.3.heap_swap操作3.组合完成的操作3.1.插入一个数3.2.求集合中最小值heap[1]3.3.删除最小值3.4.删除任意一个元素3.5.修改任意一个元素1.数据结构定义建堆堆是一个完全二叉树,用一维数组存堆,1号点是根节点左儿子2x,右儿子2x+1。核心操作down和up2.原子操作求最值时间复杂度为O(1)O(1)O(1),up和down操作和树的高度有关,时间复杂度为O(logn)O(logn)O(原创 2021-02-09 21:44:54 · 447 阅读 · 0 评论 -
C++模板库——自用
C++模板库(自用)**STL**VetorSetMap为保证map数据的唯一性,map会自动排序Priority_queueSTLSTL代码从广义上讲分为algorithm,container和iterator。iterator模式又称cursor模式,用于提供一种顺序访问一个聚合对象中的各个元素。iterator模式是运用于聚合对象的一种模式,使得用户可以在不知道对象内部表示的情况下,...原创 2019-12-18 17:03:54 · 130 阅读 · 0 评论 -
小白Java,抽象类于接口
小白Java,抽象类于接口在java中由于单继承的缺陷】需要接口去弥补这件事。但是不管事接口还是单继承都不能有实例化对象如果需要实例化,你需要实现全部的方法。这就意味着即使里面有许多你并不需要的方法,你为了实例化这个对象,而不得不全部实现其中的方法;即使是空函数体,什么都不做。依旧会使你的代码显的难看,而不够简洁。彷佛只是为了实现你的目的,而优雅荡然无存而当这个抽象类中抽象方法...原创 2019-10-19 16:20:41 · 311 阅读 · 2 评论