今天过了luoguP2759奇怪的函数;luoguP2678未完成。
这两道题都是分治算法.二分答案中比较典型的题目。
二分答案的中心思想就是用二分的方法枚举答案,时间复杂度为log2(n)。
二分答案的枚举中需要设置left和right作为搜索范围的两个端点,mid作为判断节点。
需要注意的有以下几点:
1、判断mid相对于正确答案大小的时候mid应该赋值到left还是right,建议在草稿纸上演算一遍。
2、while语句条件中采用left+1<right可以增加准确度,提高效率,相对于通常的二分答案,需要在循环末尾加上一if语句对于left和right两个值哪个值符合题意进行判断。
对于具体题目
1、luoguP2759奇怪的函数中,我用了y存储位数,但是在判断的时候要记得y自加1.
2、luoguP2678跳石头还暂时没有通过。这题是二分答案和贪心的结合题,用二分枚举,用贪心来检验。在贪心检验的过程中,我的程序没有考虑到非相邻两点是否会超过规定距离这一种情况。
3、luoguP2678出现了是个TLE的情况,明天需要继续查错。