- 博客(10)
- 收藏
- 关注
原创 队列(滑窗)错误总结
调用元素先看队列中存的是什么,下标还是实际值还是别的,应该用q[head] 还是a[q[head]]之类的注意边界,tail <= n遇到要弹出的注意除了限制条件还有head < tail ...
2018-10-07 14:25:05 139
原创 dp循环顺序对更新的影响(8.14测试)
T4硬币值子集的子集组合情况,dp[i][j]表示子集和为i中能否表示出j,在for的时候要注意最外层循环物品1-n,里面循环和全都要从大到小倒着for,原因是我们不可以使用本层更新的信息来更新本层待更新的东西。举例,在第一件物品时,dp[10][5]显然是无法更新的,而如果我们从小到大for,会在更新了dp[5][0]以后更新dp[10][5],相当于将这件物品使用两次。而这大概也就是01背...
2018-08-14 15:45:37 324
原创 主席树(可持久化线段树)
经过6个月总共5次的讲解后,我终于理解了主席树并a了模板....可持久化线段树,又名主席树。顾名思义,它支持对历史版本的询问,修改。基础用法:静态查询区间第K大/小洛谷P3834#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const ...
2018-07-21 17:40:41 161
原创 KMP算法
#include <cstdio>#include <cstring>using namespace std;int nex[1005],len1,len2;char s[1004],s1[1005],s3[1005];//平移数组,模板串从1开始,文本串从0开始void getnex(){ //灵魂next数组 nex[0] = -1;nex[1] = 0;//非常巧妙...
2018-06-22 21:53:38 71
原创 滚动数组
洛谷P4377 01背包滚动优化#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int min(int a,int b){ if(a < b) return a; return b;}int n,W;int dp[2][250005],w[25...
2018-06-10 19:56:38 110
原创 4.21测试(noip2015day1)
第一题是非常基础的一道模拟题,只是要注意下标的对应关系,nothing to say...(听说有大哥3个小时手推打表也是很服气...)第二题需要求出图中的最小环,显然tarjan是很优的(而且很裸..),然而...我忘了...其实这道题也可以不用tarjan,但是思维有点僵化了,碰到熟悉的题目但对方法陌生可以尝试用方法的思路自己推导使用的方法!! 同时以前的东西要经常复习...第三题斗地主,一道...
2018-04-21 16:31:31 104
原创 树链剖分常见错误...
dfs1函数:① dep【u】 = dep【v】 + 1; 容易将u,v写反;② siz【u】 += siz【v】;要放在递归调用之后并且不能写反;线段树push_down函数:若是“加上某个数”则为'+=';若为“修改为”则为' = ';query_chain/modify_chain函数:void modify_chain(int u,int v,int delta){ while(to...
2018-04-18 12:01:20 132
原创 noip 2011 提高 day2(18.04.14)
第一题杨辉三角形结合推论应该是非常简单的,但是在递推的时候忽略了数据范围(准确地说应该是算错了...),没有mod也没有开long long就直接wa掉7个点...//惨痛教训... 第二题一道十分显然的二分,前缀和思想非常重要!! 类似树状数组的前缀和可以有效地将累加变为o(1)查询;当然还有一个值得注意的地方,整数的二分要考虑正确答案左右的大小,即需要将最终mid左右两边的值算出的答...
2018-04-14 17:38:29 80
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人