题目分类整理

最短路径,使用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,否则会出现莫名其妙的错误

posted @ 2017-03-08 16:33  Mingsky  阅读(420)  评论(0)    收藏  举报