米哈游8月3日笔试【挂经】

投票
10道单选
15道不定向  (单选和不定向侧重操作系统和C++的一些概念  友元  共享指针  宏定义等)
3道编程题
1.给一个数组,数组的价值为相邻项的最大乘积,要求数组可以任意相邻项对调,求数组的最大价值。例如[3,1,10],对调3和1,3*10为最大,返回30。
2.背包问题,背包容量m,有n个物体,物品体积和价值.... ,但是有约束,存在k个约束,物品互斥,例如物品1物品2不能同时存在,物品2和物品3不能同时存在,求能够装下的最大价值。
3.无向图,规定一个节点与其他节点相邻的边数为该节点的度数,同时规定一个具有奖励的节点值x。首先由xiaoyo操作,然后再是玩家操作,他两循环进行直到一方获胜,或者无法完成操作。具体操作如下:从所有点中选择度为1的点,如果该点为x则当轮玩家获胜(输出玩家名,并退出),否则删除该节点及节点对应的边,继续循环直到有玩家获胜,或无法完成。 如果没有度为1的点,则输出Draw,游戏退出。
我是菜及,写不出来
大家怎么样啊
全部评论

相关推荐

第二题给你一个坐标x,y。问从0,0像素点的左下角到x,y像素点的右上角经过多少个像素点。大家做了几道题```javaimport java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        // 注意 hasNext 和 hasNextLine 的区别        int x = in.nextInt();        int y = in.nextInt();        // RuntimeException runtimeException = new RuntimeException(x+" "+y);        // throw runtimeException;        if (x == y) {            System.out.println(x + 1);            return;        }        if (y > x) {            int temp = x;            x = y;            y = temp;        }        int gcd = get(x + 1, y + 1);        if (gcd == 1) {            System.out.println(x + y + 1);        } else {            int temp = (x + 1) / gcd - 1 + (y + 1) / gcd - 1 + 1;            System.out.println(temp * gcd);        }    }    static int get(int x, int y) {        if (y == 0) {            return x;        }        return get(y, x % y);    }}```
查看1道真题和解析 投递网易雷火等公司10个岗位
点赞 评论 收藏
分享
点赞 3 评论
分享
牛客网
牛客企业服务