放假到现在7天了,听师兄的建议,题目分类型做,然后总结,现在我做完了语言入门,即水题部分。
注意点:1.在处理数字相加,看到范围考虑是否要用字符串处理。
2.用头文件中的已有封装类或者函数 处理简单题可以很快
3.英文题,细心多理解,结合输入输出确定题目要求,这里的题目很简单,可我还是得借助有道翻译,哎,英语真心要加强。
4.找规律,有些是用数学公式直接套得出结果。
色1 表示注意 色2 在解答中有挫折的题目 色3 绕了很久很久的题目 色4 未解决的问题
具体题目:
1.oj1092 数字的分隔(二) 就是处理字符串问题,题目要求位数为100位,显然就是用字符串,在用字符串做'加减'运算的时候,特别注意要考虑进位问题,在从小数进位到整数的时候更要注意跳过中间的小数点
2.oj283 对称排序,题目提示了用stablesort,所以使用algorithm中的函数,stable_sort()可以保证相同的数字,排序后相对顺序不发生改变,如1 3 4 5 4',排序后保证4仍在4'的前面: 1 3 4 4' 5
3.oj25 A Famous Music Composer 可怕,看不懂题目,尴尬,最后百度明白了题意。
4.oj779 兰州烧饼,百度后还是不懂原理,这里留个坑1,等问清楚了再来补。
5.oj455 黑色帽子,说真,题目难理解,但是理解完之后,结果惊人
6.oj264 国王的魔镜,根据对称,当字符串不是回文或者长度为奇数时 即为最短的项链
7.oj833 取石头(七),本来想自己推出规律,结果没成功,只能百度,可是百度后还是觉得不清楚,等明白了再补坑2
8.oj975 关于521,以为是很简单的题,无奈一直超时,后来看别的博客的代码才恍然大悟,首先因为是输出不同区间符合条件的个数,所以一开始初始化把给定范围内所有的符合情况的个数都求出来,就避免了重复查找。其次,像累加一样,求前n个和s[n],如果前n-1个已经知道了,即可s[n]=n+s[n-1],这里的思路也是如此。用s[n]表示1~n之间符合条件的个数,那么200~500之间符合条件的个数即可表示为s[500]-s[199];
9.oj199 无限网络覆盖 几何问题,把范围化为区间即可,思路相当重要,因为之前做过这题所以这次直接就过了。
10.oj206 矩形个数 也是自己想提出规律,无奈没推出来,百度后才知道是个数学公式,套进去即可。一个n*m个1*1单元的矩形,一共可以分割成(1+2+...+n)*(1+2+...+m)=((1+n)*n/2) * ((1+m)*m/2)个不同的矩形。
好了,今天到这,明天加油,晚安。
对于坑2,问了班上的同学,一开始他也以为是博弈,不过他说像这种题目找规律,如果熟悉博弈的人可以很轻松找出来,所以说学习博弈对找规律也很有帮助,但是 博弈离我貌似还很遥远,等到以后有幸学习到了这方面知识,那我再来总结。至于坑1,我想也是道理如此吧。(更新2017/7/8)