摘要: 杨辉三角的带权应用,杨辉三角用组合数推,(记得从二开始),什么数组该赋什么值想好了再写 阅读全文
posted @ 2019-10-08 10:51 sdzmq 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 说实话我真没思路 阅读全文
posted @ 2019-10-08 10:45 sdzmq 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 是一道非常有意思的。。。。乱搜题 打了个树形dp,将自己的建,不建,次建作为状态 发现没有考虑两个兄弟的情况,然后题解的dp和我的意义完全不一样,我就又写了个贪心:每次找最深的点,在它爷爷上建一个,进行覆盖。最大的收获是fa【i】的使用,利用了树只有一个父亲(指定根),非常便利地找爷爷。也方便上下覆 阅读全文
posted @ 2019-10-07 20:35 sdzmq 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 第一个,期望dp所有的情况一定要考虑好,每个现状态都由前一个状态转移而来,所以无论是前一个状态通过怎样的方式,两状态的起点终点如何,都应加在一起。此题关系到前一个是否成功和后一个是否成功,分别为 i-1决定换教室,i决定换教室时 (i-1成功换教室+i失败换教室) (i-1成功换教室+i成功换教室) 阅读全文
posted @ 2019-08-19 16:50 sdzmq 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 区间dp,,,我不会啊,,dp好久没做了。 区间dp是用来处理相邻合并继承的问题的,例如本题,相邻是条件。f[i][j]中i,j一般是区间左右端点。可以表示还剩这个区间时最大价值(例如本题),所以最后列举的是长度为一的区间。但大多数是表示此区间已处理时的最大值。一般一维循环枚举len长度,一维枚举左 阅读全文
posted @ 2019-08-11 18:13 sdzmq 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 堆,并查集,加权并查集,树链剖分(重链,长链),lca。 堆 单次严格o(lgn)插入、删除最小(最大)的数字,o(1)询问最小(最大)的数字,实践中一个点常用x*2,x*2+1,x/2代表其左右儿子和父亲。 删除任意数字 除了插入/删除堆顶,还要实现删除堆中任意数字(要保证其一定在堆中) 用一个堆 阅读全文
posted @ 2019-08-11 15:14 sdzmq 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 来这里第一天表示非常的懵逼。然后发觉ckw讲的线性数据结构非常的难。 关于栈和队列 1.双端队列的用法 deque <int> de; de.push_back(x); de.push_front(x); de.pop()_back; de.pop()_front; de.back(); de.fr 阅读全文
posted @ 2019-08-02 22:30 sdzmq 阅读(224) 评论(0) 推荐(0) 编辑
摘要: P1629 邮递员送信 P1342 请柬 P1821[USACO07FEB]银牛派对Silver Cow Party 都是求的往返的最大,最小路径,用堆优化的dijkstra跑两遍就行,都是板子题 银牛派对的代码: #include <iostream> #include <cstdio> #inc 阅读全文
posted @ 2019-07-19 20:47 sdzmq 阅读(116) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; string tmp,b,a; int xu,e,circle,flag,stop,l[27],g[1 阅读全文
posted @ 2019-07-19 18:07 sdzmq 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 这个题是我照着题解一点点理解一点点打出来的。 拓扑排序: 定义:将有向图中的顶点以线性方式进行排序。即对于任何连接自顶点u到顶点v的有向边uv,在最后的排序结果中,顶点u总是在顶点v的前面。 确定一个图的拓扑排序是基于bfs的,bfs是基于队列的。 首先记录所有的点和所有点的入度(在连边时顺便求得的 阅读全文
posted @ 2019-07-17 20:11 sdzmq 阅读(241) 评论(0) 推荐(0) 编辑