题目分类整理
最短路径,使用Dijkstra+DFS处理多条件下最短路径的问题:
- A1030 Travel Plan
- 是在找到最短路径的同时,累计边权的问题
- 注意边权累计和点权累计的时候,i > 0 与 i >= 0 是不同的
- A1003 Emergency
- 是一个在找到最短路径的同时,累加最短路径的条数,累计点权的问题
- 在编写的时候出现了以下问题:
- 在Dijkstra的寻找最小d[u]的时候,将d[j] < MIN 错写成d[j] < INF
- 为什么统计出来的最短路径只有一条? 原因是没有在main函数里初始化图G
- A1018 Public Bike Management
- 这道题目虽然也是累计点权的问题,但是是一种动态的累计。
- 这个题目的问题出现在Dijkstra判断条件中d[u]+G[u][v] < d[v] ,把判断条件写反了。
- A1115 Counting Nodes in BST
- 在向二叉排序树中插入数字的时候,参数root 要使用引用,Node* &root
哈希题目布尔数组初始化的问题:
- bool类型的数组如果不初始化的话,所有变量都被设置为false
- bool数组必须使用memset初始化, 在声明的时候使用bool a = {true} 只会把第一个变量初始化为true
在处理树的遍历问题的时候,如果使用静态数组保存一棵树,就会有编号处理的问题
- 不能简单地用%c来接收字符,因为编号有可能是两位数,即大于10
- 在一行scanf("%s %s") 之后,必须在下一次scanf开始之前吸收掉行尾的换行符,使用getchar()
- 在吸收了字符串作为数字以后,就需要根据字符串的长度,strlen(s)来把字符串转化为数字
在输出字符串的时候使用了%c的话,就会出现乱打印的情况
一定要注意数据类型,一旦出现了结果中有浮点数的,相关的变量就应该全部声明为double,否则会出现莫名其妙的错误

浙公网安备 33010602011771号