坑·集

记录NOIP刷题时碰到的巨坑 或者 诸如A+B Problem各种奇淫怪技

////////////////////////////////////////////////////////////////////
//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//         佛祖保佑       暴力全过     永不爆零                  //
////////////////////////////////////////////////////////////////////
  1. 重名:
max
  1. 极端定义域
str.size()==0
  1. i,j重用

  2. sort

#include //头文件
//do something...
sort(a,a+n);//sort a[0]~a[n-1]
  1. 记住cmp是return是否靠前
bool cmp(node a, node b){
    return a.e
  1. 打表

存好质数表,打表出奇迹

例见洛谷P1217

  1. 行列数与从零开始的数组map[x][y]转换!!!

  2. 频繁使用的变量用register修饰(寄存CPU)

//Example:
for(register int i=1;i<=s/2;i++)
  //do something
  1. 什么,你还在用swap(a,b);?!
if(a!=b){//!!!
  a^=b;
  b^=a;
  a^=b;
}
//=swap(a,b);
  1. C++ STL真是太好用了!!!
  • 求全排列:
#include //头文件
a[]={1,2,3}
//求下一个全排列
next_permutation(a, a+3);
//
//求上一个全排列
prev_permutation(a, a+3);
  1. 关于指针
    注意:数组名a是这个数组的首指针但不是指向这个数组的首个元素a[0],但是迭代器又不一样,a.begin()指向首元素,但是a.end()-1才指向尾元素
a[]={1,2,3};
a+1//=a[0]
a+3//=a[2]

register set::iterator iter=m.begin();
*iter//=a[0]
iter=m.end()-1;
*iter//=a[2]
  1. char数组(包括变量)要初始化!!!
    否则初值为0(打印不出来的),不是所幻想的' '
    P.S. 在main()外定义的int初始化值为0,bool初始化值为false(0)

  2. 实际问题注意有可能需要向上取整
    例如用二分答案做洛谷P1843时,湿度除以b时应该采用进一法(向上取整)

你可能感兴趣的:(坑·集)