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();

浙公网安备 33010602011771号