PAT小结
来源:互联网 发布:网络驱动没了怎么办 编辑:程序博客网 时间:2024/06/05 15:04
1. 细节失误汇总
1)==0与=0;
2)for(i=n-1;i>=0;i--)
3) 在和图有关的题中下标从1开始,所以和足以 i=0 i=1
4) pop()
5) 在&&判断中,先判断S[i]是否为空,再判断S[i]是否满足条件,否则可能溢出
2. 超时注意点以及解决思路
1)循环套循环的搜索,一般是方法不对
2)如果没有想到更有效的方法,可以考虑是否里层循环不用每次都从头开始,比如上一次循环记录下一点,下次从这点开始就好;又比如一些出结果直接break或者continue
3)cin,cout输出不如scanf printf
4) string比较操作比cstring要大,所以一些比较输入用cstring 所以有scanf("%c",str) 以及strcmp(str1,str2)
5)另外string读一个字符串再对每个字符操作,比逐一读入字符要效率
3. 数字、字符串处理
1) 大数加减乘除操作时,有时候不要遗漏carry作为左为最后溢出会单独为新的一位,不要漏掉
2) 一个数字换进制和reverse可以用一个循环式子表示,所以不要觉得复杂。
3)对称有size奇数和偶数的两种。并且判断对称的方法i=0;j=n-1;while (i<j){};
4) 判断素数,i<=sqrt(n);注意参数是double;
5)四舍五入整数的方法(round up to) int(a+0.5); 另外 a=5,b=2,c=float (a/b) 的结果是2.。。。必须分别float才行
6) string str
比较,直接> = <; 拼接直接+
复制:string b(a.begin(),a.end()) 把a的某个部分给b
大小:str.length()
插入:str.insert(str.end(),s)
交换:str1.swap(str2);
删除:
a="ABCD";a.erase(2);//从第一个字符开始保留2个字符cout<<a<<endl;//输出:AB
4. 容器
vector: vector<int> v(m) vector.resize(m) vector.back_push(p) vector.pop()
map: map<string,set<int> > hs has["XXX"].insert(); map<string,set<int >>::iteraror si; si=hs.find("XXX"); si->first; si->second;
queue: 队列,在层序遍历用到
set:: 按照字典序排列好
5. hash与倒排索引
hash,除了数组可以hash,标准字符也可以
倒排索引处理好字符串,排序,和map容器
6. 排序
快排,注意cmp函数,以及对于容器,参数是str,begin()什么的
7. 动态规划
首先,找递推关系。其次用表(数组)记录,然后实现功能。难点在递推的寻找,可以联想数列的递推。
8. 最短路径
DIJ算法牢记。入口初始化,选出dv最小,标记为known,更新dv表+设置前置点。 如果相等 的判断条件不能再过程冲体现,则无法使用。
9.深搜、广搜
广搜,用queue. : 起点入队,判断队是否为空,起点相连点入队,队首相关操作+队首出列。
深度,有map[][]和vist[]。 起点vitit标记+起点操作,扫描所有其他未标记点若满足map[][]则以这个点为起点,知道遍历所有。
10.树和前中后遍历
树的重建问题,中序+另一种遍历可以重新构造树。
完全二叉树可以用数组表示。二叉树struct node{int data; *node lson,rson;}。 其他树搞不定了。。
11. 贪心
当做模拟问题,了解选择的条件,和选择之间的关系。 建议用isstation, isdestination 等表示条件方便识别。 总之难点在模拟的时候思路清晰
12.并查集
union() fx=find(x),fy=find(y); if(fx!=fy) root(y)=fx;
find() return root(x)==x?x,root(x)=find(root(x))
- PAT小结
- PAT小结
- pat小结
- PAT刷题小结
- PAT OJ 刷题小结~~
- <心情随笔>2017.3.4 第一次PAT甲级惨烈结果_小结
- pat
- 【PAT】
- PAT
- PAT
- PAT
- PAT
- PAT
- PAT
- PAT
- PAT
- PAT
- pat
- UVA 1086 - The Ministers' Major Mess(2-sat)
- linux设备驱动模型十之class
- swig java使用实例
- sqrt(x)
- rails tips
- PAT小结
- 【OpenCV学习笔记】【编程实例】二(图像的旋转和翻转)
- 我对app的告白——那些改变我的app
- 百善孝为先,原心不原迹,原迹贫家无孝子;万恶淫为首,论迹不论心,论心世上少完人。
- php curl 请求下载文件,以及同时向接口发送参数和文件
- IOCP九:Client退出后投递WSASend
- Lession 6 集合框架
- 系统设置内添加应用设置Setting的实现
- rails 头像上传