A Forked!
题目大意
给定王后和国王的位置, 马可以先朝一个方向走
a步,再朝另一个方向走b步
问:马有多少个位置可以同时走到皇后和国王
解题思路
就无脑遍历一下马能走到国王和皇后的位置
然后再判断下有没有相同的位置
代码
B Collecting Game
题目大意
给一个数组
a,对于每一个元素,我们都会有一个初始值w = a[i] (0 <= i < n)只要w大于或等于数组中的某个元素,w = w + a[k]并且就会把这个数删除掉.问: 对于每个元素,至多可以删除多少元素?
解题思路
由于需要最大化删除个数,我们可以先对数组升序排序,这样对于
i(0 <= i < n)就可以将0 ~ i-1的所有数删除掉,然后再考虑后面的.就这样模拟下过程就完事儿了.
代码
(提交的一次TLE的代码)
(AC代码)
C Array Game
题目大意
给一个数组
a,有k次操作,每次操作选一个(i, j) (0 <= i < j < n),将|a[j] - a[i]|放在数组的足以后方.问:
k次操作后得到的数组最小的数为多少?
解题思路
首先,可以考虑到
k>=3时,我们可以先选两次相同的(i, j),然后再选新加入的这两个,这样就可以得到0了`然后再是
k == 1时, 我们想让答案最小化,我们只能先将数组排序,然后再找相邻的两个的的差值,再到最小值后,答案还不是最优值, 所以还要与原数组最小值比较.最后, 再是
k == 2时, 题目中明确告诉n^2 < 4e6,这就是让我们暴力循环,我们可以先将k == 1时的最小值记录下来,然后再暴力n^2跑一遍数组,再与之前的比较一下,最后输出答案.