摘要: 最短路分为单源最短路和多源汇最短路; 1单源最短路根据边长的正负分为两类(n表示点,m表示边) (1)边长为正 dijkstra算法 朴素版(o(n^2)) 堆优化版(0(mlogn)) 当稠密图(m>=n^2)时朴素版的时间更优,稀疏图则用堆优化版更优; (2)边权有负 bellman_ford算 阅读全文
posted @ 2019-10-30 17:08 cumtljz 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 用数组模拟出单调栈和单调队列 单调栈常常用来维护离最近的比当前值小或大的值,单调队列维护一个固定区间的最小或最大值; 单调栈维护一个左边比他小的值的代码 滑动窗口代码: 阅读全文
posted @ 2019-10-28 17:36 cumtljz 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题面: 给定一个 H*W 的棋盘,棋盘上只有 N 个格子是黑色的,其他格子都是白色的。 在棋盘左上角有一个卒,每一步可以向右或向下移动一格,并且不能移动到黑色格子中。 求这个卒从左上角移动到右下角,一共有多少种路线。 输入格式 第一行包含三个整数H,W,N。 接下来N行,每行包含两个整数x,y,描述 阅读全文
posted @ 2019-10-23 22:55 cumtljz 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题面: 古代人认为666是属于魔鬼的数。 不但如此,只要某数字的十进制表示中有三个连续的6,古代人也认为这是个魔鬼的数,比如666,1666,6663,16666,6660666等等。 古代典籍中经常用“第X小的魔鬼的数”来指代这些数,这给研究人员带来了极大的不便。 现在请编写一个程序,可以实现输入 阅读全文
posted @ 2019-10-23 17:21 cumtljz 阅读(324) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/cjc030205/p/11638110.html 附上大佬的博客转一下: 题面描述: 给出一个长度为 的由小写字母组成的字符串 ,设其中第 个字符为 。 设删掉第 个字符之后得到的字符串为 ,请按照字典序对 从小到大排序。若两个字符串相等,则认为编号 阅读全文
posted @ 2019-10-22 20:34 cumtljz 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 区间莫队+异或前缀和 假设p[i]表示a[1]^a[2]....a[i] 那么 a[i]^a[i+1]....^a[j]=p[j]^p[i-1] 对于每一个新增的询问a[x],增加的个数为a[x]^k出现的数目 代码: 阅读全文
posted @ 2019-10-18 18:41 cumtljz 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题解: 很裸的LCA模板题,用map建树(用了两个小时改bug,终于过了,hhhh) 阅读全文
posted @ 2019-10-17 10:44 cumtljz 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题意: 一道很裸的LCA题 以一个点建树,两点间最短的距离可以转化为求两近公共祖先,最短距离,depth[x]-depth[l]+depth[y]-depth[l] 在dfs求得每个点到顶点距离 阅读全文
posted @ 2019-10-16 18:31 cumtljz 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 对于一棵树,求两个节点的最近公共祖先(LCA)。 如下图:(以下数字代表对应编号的节点) 11 和 66 的 LCA 是 88 。 1111 和 11 的 LCA 是 88 。 1111 和 1515 的 LCA 是 44 。 1414 和 1313 的 LCA 是 11 。 以洛谷P3379模板题 阅读全文
posted @ 2019-10-16 14:35 cumtljz 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 题面: 给出基数为 -2 的两个数 arr1 和 arr2,返回两数相加的结果。 数字以 数组形式 给出:数组由若干 0 和 1 组成,按最高有效位到最低有效位的顺序排列。例如,arr = [1,1,0,1] 表示数字 (-2)^3 + (-2)^2 + (-2)^0 = -3。数组形式 的数字也同 阅读全文
posted @ 2019-10-16 13:03 cumtljz 阅读(231) 评论(0) 推荐(0) 编辑