• 写代码要注意的几点(2)


    一。用scanf语句读入数据时,%d和%c不要忘记&。读字符串时则不加&;

    二。在要读入字符或字符串时要确保没有空字符;尤其是行末回车符和空格;

    三。要用半角输入法。全角状态下编译通不过。上次无意间打了一个全角空格,怎么都编译不过去,而且看不出来。无奈只好重新写一遍。

    四。循环嵌套时不要起相同的变量名。

    五。声明变量时尽量声明的有意义,比如对应英文单词的缩写或汉语拼音的缩写。

    六。有的单词不能被声明成变量名称。关键字是C++预定义的一些单词,我们定义变量常量时是不能使用的,列一下吧:auto  bool  break  case  catch  char  class  const  const_case  continue  default  delete  do  double  dynamic_cast  else  enum  explicit  extern  false  float  for  friend  goto  if  inline  int  long  mutable  namespace  new  operate  private  protected  public  register  reinterpret_cast  return  short  signed  sizeof  static  static_cast  struct  switch  template  this  throw  true  try  typedef  typeid  typename  union  unsigned  using  virtual  void  volatile  while。

    七。搜索时要注意回溯。例如迷宫问题,向各个方向探索,没有路,就退一步,继续搜索其他路。

    八。根据数据范围选择合适的算法。

    九。最近公共祖先LCA倍增算法,时间复杂度nlogn.

    预处理通过dfs遍历记录每个节点到根节点的距离dis[i]和深度d[i]。

    init()求出每个节点u的2^j祖先p[u][j];

    求最近公共组先,根据两个结点的深度,如不同,向上调整深度大的节点,使两个节点处在同一层上,这时,如果正好是祖先,结束。否则将两个节点同时上移。

    ~~~模版~~~

  • 相关阅读:
    Javascript中对文字编码的三个函数
    Web.config文件中关于Cookie安全性的考量和设置
    面试时被问到的问题
    JQuery中查找父元素,子元素,追加元素,插入元素和删除元素 及其他常用方法
    JQuery插件开发学习
    Umbraco image中使用Crop URL
    SQL中的row_number() over()解释
    GEO,IGSO,MEO,LEO
    计算机网络端口常识
    VMnet1和VMnet8 未识别的网络的解决方法
  • 原文地址:https://www.cnblogs.com/syx-799/p/5781876.html
Copyright © 2020-2023  润新知