A - 拼三角
枚举所有可能的挑选情况即可
B - 相对分子质量
先将元素值代入化学式中,并将化学式转化成对应的中缀表达式,最后求中缀表达式的值。
应该学习一下代码最短的选手的写法
C - 消减整数
为了保证次数尽可能的少,那么减数就得尽可能的大。
假设这个最大的减数为$
D - 消灭星星
首先假如我们已知要保留的字母集合,
我们可以通过先枚举行,再枚举列判断是否删除改行(该行是否有要保留的字母集合)
我们可以用一个临时的二维数组存储原字符矩阵,并对该数组进行删除操作(加入我们要删除改行,就将整个行变成 '.')那么删除列也是同理的(要继续使用已被行删除操作过的临时二维数组)
既然知道了如何判断某一个保留字母集合是否正确,则我们可以枚举一个二进制数代表一个保留字母集合($
E - 春游
下面五种情况取最小即可:
1.所有的人都划双人船
2.所有人都划双人船,但是有一个人,自己划一个双人船。
拿出一个双人船的兄弟,三个人开一个三人船。
3.所有人都划三人船
4.所有人都划三人船,但是有两个人划三人船,空一个位置
把这两个兄弟安排到一个双人船里去
5.所有人都划三人船,有一个人划三人船
拿出一个三人船的兄弟,这样就有4人,开两个双人船。
F - 五连珠
为节省查找成本,以元素值为键,并以元素所在位置为键值建立映射,这样可以很快找到一个点所在位置。
每给出一个元素值,在相应位置做删除,某行元素个数少1,某列元素个数少1。然后分别检查两个矩阵,做出对应操作。
检查矩阵:
先检查对角线,分别遍历两个对角线;可以用两个一维数组分别对行,列元素的个数作标记,检查是否存在一行或一列没有元素。
G - 有始有终
广搜最短路
操作1:
第一次连通一片无需放技能就能到达的点。
操作2:
这时候处于边界线且未能到达的点升级为电梯,可以达到任何上下左右相邻的点。
第二次从分别从各个电梯出发连通一片能到达的点。
这样就会搜出一条新的边界线,重复上述操作2。
操作2的执行次数就是广搜到的答案
H - 匹配矩阵
为节省代码长度,最好写一个矩阵匹配函数,这里选择暴力匹配。
用4种小矩阵分别匹配大矩阵,然后求和。
I - 螺旋矩阵
按题意模拟即可
J - 统计个数
暴力即可
全部评论
(3) 回帖