OJ

问题技巧

1.日期问题

  1.1闰年(leap year) 四年一闰,百年不闰,四百一闰  。

  2.1技巧 buf[year][month][day] = cnt, 需要注意的是区别 闰年。

2.排版

  2.1不好直接输出的排版,在二维数组中预排。

3.查找

  3.1线性,二分

4.树

  4.1哈夫曼树 带权路径=各 叶节点距根节点距离*叶节点权值 之和 = 非叶节点权值之和

编码技巧

1. for(int i=1,j=2; i<n; i++,j++) 

2.按位与  &            按位或 |        按位异或 ^     按位非 ~    左运算符<<              例如:(a>>n)&1

3.%x 16进制

4.对链表处理可以有多个指针  分别指向各个链表根据情况 扫描下一位置

测试

1.每次完成编码考虑最大最小情况,是不是需要为最大最小情况编制一组代码

标准库

1.#include <stack>     stack<ElementType> S;

            S.push(element);

            S.pop();

            S.top();

2.#include <queue>   priority_queue<ElementType> Q;    大根堆   priority_queue<ElementType, vector<ElementType>, greater<ElementType>> Q;小根堆

            Q.push(element);

            Q.top();

            Q.pop();

            logN;

3.#include <string> 

          初始化

          string str = "cool";//cool

          string str1("abc");//abc

          string str2(str1);//abc

          string str3(n,"c");//n个c

          操作

          str.empty();

            str.size();

                      str1+str2; 

          str1 = str2;

          str.pop_back();//删除最后一个元素

          访问

          str.front(); //元素 

          str.back();

          str.begin();//地址

          str.end();

 

posted @ 2018-03-08 12:22  BigPop  阅读(626)  评论(0)    收藏  举报