剑心互娱笔试AK
1.推个公式先判断在哪个页面,再从小到大求出页码
2.用map存已经使用过的数,dfs+回溯+剪枝,考虑对于每次拆出来的数都要比前面拆分出来的大,从而减低复杂度,剪枝考虑当前剩下的数值够不够剩下拆分的次数 * 拆分最小均值。
3.模拟:每次直接求出每个数的string存储的16进制,然后用string保存并连接每个数的16进制string,边遍历边保存当前位置字符到另一个string作为答案,如果当前字符是'0'考虑是否有多个连续的'0',如果有取出不超过27个连续'0',用小写字母代替
4.模拟:用vector<uint8_t> a保存当前俄罗斯方块当前每一行的游戏状态,遍历每个要掉落的方块,在a中找到第一个不能再下落的位置,并判断该方块是否能和这个位置上面的方块合并抵消,不能消去就合并这两个方块,如果可以消去这消去,并掉用另一个函数,判断消去后更新的行是否能继续消去,如果可以,这继续调用该函数。判断是否阻挡 (x & y) == 0 判断是否抵消(x |y ) == 255;
#剑心互娱校招#
2.用map存已经使用过的数,dfs+回溯+剪枝,考虑对于每次拆出来的数都要比前面拆分出来的大,从而减低复杂度,剪枝考虑当前剩下的数值够不够剩下拆分的次数 * 拆分最小均值。
3.模拟:每次直接求出每个数的string存储的16进制,然后用string保存并连接每个数的16进制string,边遍历边保存当前位置字符到另一个string作为答案,如果当前字符是'0'考虑是否有多个连续的'0',如果有取出不超过27个连续'0',用小写字母代替
4.模拟:用vector<uint8_t> a保存当前俄罗斯方块当前每一行的游戏状态,遍历每个要掉落的方块,在a中找到第一个不能再下落的位置,并判断该方块是否能和这个位置上面的方块合并抵消,不能消去就合并这两个方块,如果可以消去这消去,并掉用另一个函数,判断消去后更新的行是否能继续消去,如果可以,这继续调用该函数。判断是否阻挡 (x & y) == 0 判断是否抵消(x |y ) == 255;
#剑心互娱校招#