总结和反思
文章平均质量分 85
艾希鲁法特
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
18-1-22~28一周算法总结(DP,并查集)
26 查并集。 实际上是建立一棵树,拥有共同的结点则在一个集合里。 主要的三个操作。 const int maxn=1e5+5; int f[maxn]; //int rank[maxn]; void init(){//初始化// for(int i=1;i<maxn;i++){ f[i]=i; // rank[i]=0; } } int find(int x){//原创 2018-01-28 17:20:51 · 187 阅读 · 0 评论 -
18-1-30~2~5一周算法总结(DP,二分图,最小生成树)
30 DP(最长上升子序列和lcs) 摸了 1 DP(01背包和完全背包) 01背包 for(int i=1;i<=n;i++){ for(int j=k;j>=w[i];j--){ dp[j]=max(dp[j-w[i]]+v[i],dp[j]);//维护对于第i个物品,不放的时候的最大值和放了之后空间减少w[i]的最大值 } }完全背包和01背包基本一原创 2018-02-05 16:57:18 · 259 阅读 · 0 评论 -
poj 3368 Frequent values(RMQ)
题目链接给一个单增序列求所给的区间内数字最多的重复次数。思路我一开始想歪了,但是居然还是ac了。mx[i][j]=Max(mx[i][j-1],mx[i+(1<<(j-1))][j-1])这个Max操作很复杂,因为我mx[i][j]是一个结构体,存放最大值,左端值,左端重复个数,右端值,右端重复个数。要比较最大值是2个区间的最大和他们中间连起来后可能出现的最大值。然后更新左端值,左端重...原创 2018-02-12 21:42:48 · 238 阅读 · 0 评论 -
18-2-6~2-12一周算法总结(数论,st表,树状数组)
7,9数论咕咕咕11st表,树状数组内容有点多。慢慢补。第一,RMQ,查找区间最大(小)。对于一个总长度n的区间,一次全查找时间为n,最糟糕的情况下有n^2的情况去查找,例子一多必然超过时间复杂度。所以打表。一开始想到的就是n*n的双重循环打表,但是不行,rmq其实就是对它的优化,dp[i][j]表示从i起的2^j的长度的区间。而dp[i][j]=max(dp[i][j-1],dp[i+2^(j-...原创 2018-02-12 21:26:51 · 207 阅读 · 0 评论 -
18-2-23~3-1一周算法总结(字典树)
23字典树大致理论就是“利用字符串的公共前缀来节约存储空间”。用的是指针,数组字典树先放着QAQstruct Trie{//结构体,每个位置的单元 Trie *nxt[26];//26是因为最大26个字母 int v;//这里只计算出现次数,实际上结构体内可以存很多信息,但需要对下面的creat和find修改 }; Trie * root; void creatTrie(char *s){ ...原创 2018-03-10 11:06:00 · 221 阅读 · 0 评论
分享