摘要: 01背包问题: 无优化 for(int i=1;i<=n;i++) { for(int c=0;c<=m;c++) { f[i][c]=f[i-1][c]; if(c>=w[i]) f[i][c]=max(f[i][c],f[i-1][c-w[i]]+v[i]); } } 一维数组优化: for(i 阅读全文
posted @ 2019-11-14 17:26 攒一兜星星* 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 一、RMQ求LCA 先介绍一下三个数组的含义 ver[i]表示dfs第i个访问的结点 R[i]表示ver[i]所在的层数,也就是深度 first[i]表示ver[i]第一次出现的下标 举个栗子如下图 求出来的三个数组如下图,f->first,v->ver,T就是点的编号 如果我们要求d和f的LCA, 阅读全文
posted @ 2019-11-13 21:57 攒一兜星星* 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 引入 线段树和树状数组,是两个十分相似的数据结构。他们能使对一个区间的数修改以及查询的速度提升许多。两个结构本质相同,各有优缺点,今天我们来从单点修改,单点查询,区间修改,区间查询。 概念 线段树 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶 阅读全文
posted @ 2019-11-13 21:26 攒一兜星星* 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 原文 LCA+桶+树上差分 1. 第一步 首先可以初步判断这个题肯定要计算LCA,方法有倍增/Tarjan-DFS,我们就写个简单的倍增吧,使用链式前向星存储边。 选择1号结点开始dfs,别的结点也可以 dfs过程中计算fa[][]数组(fa[x][i]表示 xx 结点的 2i2i 代祖先是谁)和d 阅读全文
posted @ 2019-11-13 17:11 攒一兜星星* 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 总: 有好多可得的部分分啊,但我也只是拿了20。。 我突然感觉我的图论学的好烂啊。。 1.玩具谜题 emmm... 就是个模拟。。在找规律推推公式。。 2.天天爱跑步 额...这个紫题为啥要放到第二题???(我默认为题目难度是递增的) 但还好我机智,最后两个直接看部分分 emm...然后还是只拿了2 阅读全文
posted @ 2019-11-13 12:01 攒一兜星星* 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 一.堆的性质 1.堆是一颗完全二叉树 2.堆的顶端一定是“最大”,最小”的,但是要注意一个点,这里的大和小并不是传统意义下的大和小,它是相对于优先级而言的,当然你也可以把优先级定为传统意义下的大小,但一定要牢记这一点,初学者容易把堆的“大小”直接定义为传统意义下的大小,某些题就不是按数字的大小为优先 阅读全文
posted @ 2019-11-12 18:32 攒一兜星星* 阅读(868) 评论(0) 推荐(0) 编辑
摘要: noip 2014 day1 总:忘了快速幂,离散化不熟,读不懂题(其实还是知识点不熟,基础不牢吧) 1.转圈游戏 读题可以发现 0->m m = ( 0+m)%n 1->m+1 m+1 = (m+1)%n ... ... n-m->0 0 = (n-m+m)%n n-m+1->1 1 = (n-m 阅读全文
posted @ 2019-11-11 17:14 攒一兜星星* 阅读(212) 评论(2) 推荐(0) 编辑
摘要: 总:忘了快速幂,离散化不熟,读不懂题(其实还是知识点不熟,基础不牢吧) 1.转圈游戏 题目 读题可以发现 0->m m = ( 0+m)%n 1->m+1 m+1 = (m+1)%n ... ... n-m->0 0 = (n-m+m)%n n-m+1->1 1 = (n-m+1+m)%n 哇塞好像 阅读全文
posted @ 2019-11-09 16:41 攒一兜星星* 阅读(175) 评论(0) 推荐(0) 编辑
摘要: oi各类模板集 https://www.luogu.org/paste/h3mzcfo1 https://www.cnblogs.com/phemiku/p/11622062.html 各种模板题 1.快速幂与快速乘 #include <bits/stdc++.h> using namespace 阅读全文
posted @ 2019-11-09 15:24 攒一兜星星* 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 素数个数 样例输入 4 2 11 2 98 2 1000000 999999000000 1000000 样例输出 6 25 78498 36400直接上代码吧,注释很全了 #include <bits/stdc++.h> #define ll long long using namespace s 阅读全文
posted @ 2019-11-08 18:21 攒一兜星星* 阅读(222) 评论(2) 推荐(0) 编辑