摘要:
"Codeforces 437D The Child and Zoo" 题目大意: 有一张连通图,每个点有对应的值。定义从p点走向q点的其中一条路径的花费为途径点的最小值。定义f(p,q)为从点p走向点q的所有路径中的最大花费。累加每一对p,q的f(p,q),并求平均值。 乍一看以为是对图的搜索,但 阅读全文
摘要:
"题目链接" 大意是判断所给字符串组中是否存在与查询串仅一字符之差的字符串。 关于字符串查询的题,可以用 "字典树(Trie树)" 来解,第一次接触,做个小记。在查询时按题目要求进行查询。 代码: C++ define _CRT_SECURE_NO_DEPRECATE include include 阅读全文
摘要:
字典树Trie Trie树,又称为前缀树(Prefix Tree)、单词查找树或键树,是一种多叉树结构。 性质 ①根节点不包含字符,除根节点外的每一个子节点都包含一个字符。 ②从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。 ③每个节点的所有子节点包含的字符互不相同。 PS:通 阅读全文
摘要:
"题目链接" 非常简单的一道dp题,通过O(n)的预处理来使查询变为O(1)。 主要的坑在于取模后的dp数组的前缀和再相减可能得到负数,导致无法得到某一区间和的取模。 解决方法:(a b)%mo==(a%mo+mo b%mo)%mo,由于该等式的存在,可以使用取模后的前缀和做运算得到某一区间和的取模 阅读全文
摘要:
树状数组 树状数组是在线段树的结构上改造而来数据结构,主要用于完成: 给定一个初始值全为0的数列 ①给定i,计算返回a1+a2+……+ai的值 ②给定i和x,执行ai+=x BIT的求和 BIT的值更新 C++ void add(int i, int x) { while (i 阅读全文
摘要:
并查集 之前对并查集一直不太熟悉,这次做题遇到了,就做一个简单记录 并查集是什么 并查集是一种管理元素分组的数据结构,可以①查询两个元素是否属于同一组,也可以②合并两个元素所属组。为树形结构,但不是二叉树 并查集基本功能的实现 C++ int par[maxn]; //父亲 int rk[maxn] 阅读全文
摘要:
位运算符 对于位运算完全不熟悉,因此开个小记来陆续记录一些遇到的常用位运算 :按位与,对应的二进制位均为1时返回1,否则返回0; :按位或,对应的二进制位有一个为1时返回1,否则返回0; :按位异或,对应的二进制位不同时返回1,否则返回0; :按位非,对每一位取反; :右移; 位运算的一些技巧 前者 阅读全文
摘要:
用ST算法解决RMQ(区间最值问题) 在解决CF上的6E "Exposition" 时,用到了RMQ+二分的方法。学习了用ST来快速解决RMQ问题,因此做一个小记 建表 用DP的方式来建ST。 dp[i][j]表示从第i个数起,往后2^j个数中的最大(或最小)值。如dp[1][3]则表示区间内第1个 阅读全文
摘要:
寒假第四次作业 已学内容总结 关于C++ 其实在开学前的暑假,我自己网购了一本《C++ primer plus》打算自学C++,但由于贪玩,只看到第八章“函数”,可以说其实还没看到C++的精彩之处就开学了。而开学后对C++的学习就停滞了,也一直不明白何为面向过程,何为面向对象。这次寒假看了魏英老师的 阅读全文
摘要:
寒假第三次作业 文件读写的学习过程及心得 之前在读《C++ primer plus》时,看到用文件进行输入输出时,看得一脸懵逼,不了解为什么那样做可以实现文件输入输出。 经过这个寒假上慕课对C++面向对象特性的进一步学习,总算搞懂了,掌握了通过定义fstream中的ifstream、ofstream 阅读全文