- 博客(6)
- 收藏
- 关注
原创 Secret Message G(字典树统计前缀问题)
比如查找aac,a作为前缀会被flag++,同时num++,这样会重复计算一次,因此,需要特判,当还没有遍历到字符串末尾-1的时候访问到的flag直接加到答案中,否则放到num计算即可。2.在统计相互作为前缀的时候,设置数组flag,需要增加记录某一个字符串结束的位置,比如构建a完毕,那么就在a的末尾行flag++;刚开始还是没有理解字典树的原理,调的时间很长,最重要的就是这个p的理解和普通字典树的局限性--------------------!:给两堆字符串,找第二堆中每个字符串在第一堆中的前缀数量。
2023-12-05 22:22:37
409
原创 货车运输(kruskal+最大生成树+LCA)
这里要注意的是,题中图不一定是连通的,因此最大生成树求完,整个图变为森林,因此需要对每个树找一个根节点,我使用无效的结点0来代替。2.很容易想到kruskal+并查集,将图转为最大生成树,最大生成树,可以保证任意两点之间的路径的边的权值最大,再小的边也无需考虑,按边权值降序排序,然后kruskal做n-1次,生成最大生成树。它们一开始不相连,在这一步后代表元素(两个根结点)连接权值为 w的点,才使得它们相连,所以最近公共祖先权值是新结点,权值 w。在kruskal求最大生成树的时候,也可以边生成,边建树。
2023-12-04 22:36:29
410
原创 c++文件
总结一下文件,顺便复习文件两大类:文本文件(字符)和二进制文件(保留数据类型)一、文本文件打开方式:只读:file.open(“文件名.格式”,ios::in)只写:file.open(“文件名.格式”,ios::out)//这两种每次打开均会刷新文件可读可写:file.open(“文件名.格式”,ios::in|ios::out)追加:file.open(“文件名.格式”,ios::app)//这两种不会刷新文件内容//上述四种如果文件不存在,会创建一个新文件。测试文件是否打开成功:
2022-04-16 11:34:28
2628
原创 简易酒店管理系统(c++)
*主要功能:1.打印已经被预定的房号,用于客户订房 2.客户退房,结算时间和消费 特点:使用person和client类,文件,引用,全局变量*#include<iostream>#include<string.h>#include<iomanip>#include<fstream>using namespace std;class person {private: int roomnum; char *name; c
2022-03-22 20:28:09
2625
1
原创 开心的金明(动态规划,初学者c++)
自述:第一次写,话有点多,写写思路希望对自己有帮助,同时也希望能帮到需要的人。解题思路:List item把物品价格和重要度放在两个不同的数组(money[],impo[]),利用同一个下标访问多个数组的同一物品的数据,再开辟一个数组bag[26][100000],列数为总钱数加一(因为我发现我这个数组他不赋值的时候是随机数据而不是零,读者可自行选择),这个题中的重要度和物品加钱的乘积是需要放入背包的,重要度不参与比较,所以用每一个物品的乘积覆盖相应的重要度。,2. List item先把大
2022-03-14 21:02:00
1145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人