网易2020春招游戏研发工程师实习生笔试题记录

1.40m大刀

第一行为n,即n组数据
每组数据的第一行为m len,意思是下一个为mm的方阵,len为刀长。
下列m行是m
m的方阵数(都大于等于0)。0为没有补给,其他数为补给。
下一行为两个数字,x y,为玩家所在行列数。
如果一个位置(a,b)离玩家所处位置(x,y)的欧式距离小于刀长,即可被刀斩到,则刀长变成原来的刀长+该补给数。
要求输出刀长所能达到的最大长度~

忘记保存了。
就近遍历了所以满足条件的值。
如果没被访问过,就加上,否则跳过。
直到一次循环后,刀长没有发生变化,就跳出。
AC了

2.三种操作

第一行为n,即n组数据
每组数据的第一行是m k,意思为初始有m个集合,里面的元素分别为1,2,……,m。
k的意思是有k个操作,下列k行为k个操作的信息,每行第一个数a为第a个操作(有三种操作),每行其他的数是参数。

  1. 1 x y:查找xy各自所在的集合。如果不在一起,就合并;在一起,就啥都不做
  2. 2 x:查找x所在的集合。如果该集合只有x,就啥都不做。否则就把x移出来,让他自己一个集合
  3. 3 x:查找x所在的集合,输出该集合的元素总数。
很简单,,,我就不赘述了

3.错位排列

第一行为n,即n组数据
每组数据的第一行为m,为m个数
第二行为m个数,设为A数组
第三行为m个数的权值,第一个为V1即数字1的权值
要求得出一种错位排列,使得该值最少:
dis=V1*|loc[A1]-loc[B1]|+Vi*|loc[Ai]-loc[Bi]|+Vm*|loc[Am]-loc[Bm]|

public class Main {
   
    private static int[] arr;
    private static int[] wei;
    private static int minDis;
    private static Map<Integer,Integer> loc;
    public static void main(String[] args) throws IOException, ParseException {
   
        String strs = "3\n"+
        "3\n"+
        "1 2 3\n"+
        "1 2 3\n"+
        "4\n"+
        "4 3 2 1\n"+
        "1 1 1 1\n"+
        "2\n"+
        "1 2\n"+
        "10 20\n";
        InputStream is = 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值