zoukankan      html  css  js  c++  java
  • 写代码要注意的几点(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];

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

    ~~~模版~~~

  • 相关阅读:
    harbor无法登陆解决
    k8s中使用harbor
    harbor扩容
    harbor设置开机自启
    设置开机自启
    关Java的内存模型(JMM)
    多线程相关概念
    多线程(JDK1.5的新特性互斥锁)
    synchronized关键字
    【异常】redis.clients.jedis.exceptions.JedisDataException: ERR unknown command 'PSETEX'
  • 原文地址:https://www.cnblogs.com/syx-799/p/5781876.html
Copyright © 2011-2022 走看看