- 博客(4)
- 收藏
- 关注
原创 hdu 5288 OO’s Sequence
题面求的是 对于每一组l r 存在的i的综合,显然很不好求,可以换一个角度,转换成每个数作为i时 可以选择的区间的数量,只要先预处理出每个说左右最近的可以被它整除的数的位置,左右长度乘一起就是这个数对应的区间数量。预处理左侧区间长度时可以从中向右扫,对每个数在遍历它的因子,看是否出现过,如果出现过,进行取优就可以了,右侧同理。 #include #include #include #inc
2015-07-24 09:49:02 334
原创 poj3537 Crosses and Crosses
很久之前做过的一道sg函数的题,当我方选择一个点后,对方选择与此点相邻点和间隔为一的点,都会使我方直接获得胜利,所以当选择点的位置i后,问题转换成2个子问题, 区间i-3和n-i-2的问题求解,而由sg函数可知,sg[i]应该是其每种位置选择对应的2个子区间异或后 没有出现的最小自然数,所以就可以递推出sg[i],而sg[i]非零则先手赢。 #include #include #inclu
2015-07-21 09:30:51 380
原创 poj3735 Training little cats
题意为有n只猫 而你有m次操作 每次操作分k个步骤 每个步骤有3种选择 1:给第i个猫a个花生 2:让第i个猫把它所有的花生都吃掉 3:交换两个猫的花生 第一眼看过去以为是水题 后来发现m很大 大到o(n)都会t掉 所以就需要简化操作 用矩阵 可以将k个步骤整合成一个步骤 对于1 2 3只要构造 如下的矩阵 就可以达到相应的功能 整合成一个矩阵后 再利用矩阵快速幂来求就可以了
2015-07-20 21:01:39 282
原创 hdu5171 GTY's birthday gift
由题意可以看出,每次应该选择2个最大的数合起来再加进去,第一次肯定选择原数列中最大的2个数a,b(a>=b)。而第二次应该选择a+b和a。这样每次新构成的数,是上一次选取的2个数之和,a和b的系数 相当于斐波那契数列。对于快速求斐波那契数列可以构造矩阵 所以就可以推出 而这题加上对斐波那契数列的求和,所以可以构造 这样的矩阵 来进行求和功能 #include #include
2015-07-20 11:11:10 449
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人