C++经验:做题技巧、思路

C++经验:做题技巧、思路

小编原创,想看更多可关注小编。

目录

 

1.做题技巧

2.做题思路


1.做题技巧

  1. 要输入输出时,为了节省时间,可以用C语言的输入输出,即 scanf 和 printf ,当然在不了解的情况下可以用C++语言的输入输出,即cin和cout。
  2. 当存储数据大于20亿左右时,要用long long来存储数据(不要用int,int会出问题)
  3. 纯是字符串可以用puts();来输出(要引入#include<cstdio>),如puts("O(∩_∩)O");
  4. 定义数组时尽量设为全局数组,这样会自动将数组全赋值为0。
  5. 若a要×或÷ 2^n可用位运算:a>>n;a<<n;
  6. 定义数组时要比题目定的数据大一些,这样可防止测试程序数据出现误差。
  7. 有些要运用数学的东西,一些不用手写,#include<cmath>和#include<algorithm>里面或许有你要用的数学函数,读者可以自己搜哦~
  8. 当遇到有t组数据时:while (t--){……}

2.做题思路

  1. 枚举法(时间复杂度较低时可用)
  2. 深度优先搜索(并剪枝,这样可以提高效率,当然可以加上记忆化搜索)
  3. 广度优先搜索(即宽度优先搜索)(并剪枝,这样可以提高效率,当然可以加上记忆化搜索)
  4. 贪心算法(要考虑是否能用贪心算法,许多题目看起来能用实际上用了是错的)
  5. 二进制枚举子集(题目要求内存得够)
  6. 动态规划(这可够难的了)
  7. 查找算法(可用于查找某东西,建议用二分查找法)
  8. 排序算法(有些题得将数据排序,建议用sort()函数,需#include<algorithm>,有时得自己写)
  9. 使用C++专门的STL(即queue、set、map、vector之类的)
  10. 高精度算法(数据太大时可用)
  11. 用数学知识(如三角形的内角和是180°)
  12. 图的算法(还有各种技巧,如连通块有n个点,n-1条边)
  13. 多开动脑筋(如某题对的人数有n人,只需要将总人数-错的人数即可求出n)

小编原创,想看更多可关注小编。

猜你喜欢

转载自blog.csdn.net/Keven_11/article/details/107787870
今日推荐