今天上午在补昨天的比赛提,BC那两个图论题终于找到bug了!!!
就是在定义一个大数上,我本来记不清大数是#define inf 0x3f3f3f3f
就写的9999999.。
在这里不被承认啊!!!!就因为这。。浪费了那么长的时间。。心好痛、、基础知识不扎实,好要命啊!!
今天下午补的DE题,D是个贪心。一开始看着还以为是单调队列、后来仔细想了想。。再加上上午老师开会时提了一句。。就按贪心思想做的、WA了好几次。。有好多细节需要注意。。最后还是试样例、终于试出来。没有注意到,一组过,中间没有及时跳出,导致多加了一次、加上及时判断跳出循环就能A了、
E最长路径、跟C题很像、改改初始值,大于号,小于号的差别、
下午剩下的时间还有晚上,就是在看树状数组的课件和博客、、
一开始真的有点蒙、
int lowbit(int x) { return x & (-x); }不太明白、那些特殊符号以前也没注意过、
在度娘的帮助下,勉强懂了一点点、
&按位与 如果两个相应的二进制位都是1,则该位的结果值是1,否则为0
|按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1
^按位异或 若参加运算的两个二进制位值相同则为0 否则为1
~取反 ~是一元运算符,用来对一个二进制数按位取反,即0变1,1变0
<<左移 用来将一个数的各个二进制位全部左移N位,右补0
>>右移 用来将一个数的各个二进制位全部右移N位,移到右端的被舍弃,对于无符号数,高位补0
基本上就理解了、
再就是对于树状数组的储存方式也了解了、c[i]是有规律的进行多个位置数据的储存、真的很精妙!!!莫名佩服第一个发现树状数组的人、、
课件上也说,树状数组的应用范围很小、就是一个求和求最大值的工具,节省时间空间!
再就是二维数组,也是雷同、虽然知道他这是什么规律了、但是感觉还是很晦涩,简单的代码实现看了一下,真的很简单!!
对于这个规律的缘由还不是很理解、不能解释这个规律、顶多是强行背过了这个规律。。。
最后的一点时间看了饶齐的一篇博客、感觉树状数组只是一种工具、实现起来,就那么几步、难得是如何将问题转化成求和,求最值的问题、树状数组的题目,乍一看,可能感觉跟求和,跟树状数组没什么关系,但是转换一下思想、问题就可以用树状数组解决了!!正确解读解题方式,感觉才是重要的、
明天再继续钻研、