T1、小灵的奇妙上学之旅
一个比较基本的动态规划,寻找不同路径的数量,由于终点只能够由起点到达,因此终点方案数就是所有起点的方案数加在一起(就是数据一言难尽)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T2、完美矩阵
本题难点在于找到旋转对称点。当n=4时,(0,0)的对称点为(0,3),(3,0),(3,3),(0,1)的对称点为(1,3),(2,0),(3,2),……,由此可知,(i,j)的对称点为(j,n-i-1),(n-j-1,i),(n-i-1,n-j-1)这三个点
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T3、So Easy
这道题第一眼是暴力枚举,时间复杂度 O(n2) ,带入最大数据n=2e5,超时。
那么我们可以换一个思路,由于题目要求找到aj-ai=j-i,那么我们作移项处理,有aj-j=ai-i,那么我们只需要判断有多少个这样的差值相等即可,因此我们可以用桶来装差值。
但是,这样会有一个问题:当我们得到的差值<0怎么办,这样会导致 RE ,那么我们就给得到的差加上一个极大的数且确保最后的结果不会超过桶的大小。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T4、棋盘对象
这道题目想不到时间复杂度 O(1) 的(或者像我一样 O(1) 做错的),建议直接广搜处理。根据象的走法,我们可以写出方向数组:int dir[4][2] = {{2, 2}, {2, -2}, {-2, 2}, {-2, -2}};
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T5、左右互搏
这道题目直接深搜即可,时间复杂度 O(2n) ,这样带入最大数据n=10,计算出来为1024,不会超时,放心写代码吧
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T6、拉丁方格
由于题目明确说明由A、B、C组成的方格且每行每列不重复(有点像数独或幻方),那么可以知道:
· 三行每行一个字母,共三个字母,即在方格中A、B、C各出现三次
· 题目输入数据只会缺少一个字母,即只有一个字母出现次数为3-1=2次,其它均为3次
所以,我们只要找到出现次数最少得字母即可,因为它就是缺少的字母
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
感兴趣的话就加入团队吧!