开宝箱(Java8)

我在参与腾讯校招机考的时候做过类似的题(当然比这个难了),是宝箱和钥匙匹配的题,所以想找个类似的题目做做,然后就搜到这题,对于算法效率和能不能通过测试我不清楚,因为没有找到题目来源,java代码仅供参考。c/c++解法参考

Description:
急先锋是一个商人,有一天找到了一个宝箱,宝箱需要正确的密码才能打开。同时他发现宝箱上有一个数字,和一份密码表。密码表上有n个密码,只有一个密码是正确的。
急先锋所在的岛上有m个地点,每个地点有两个神秘的数字。他通过交易得到每个地点上拥有的信息,也知道这个宝箱上的数字是一个地点的标号x。急先锋需要先到x号地点,x号地点上的第一个数字就是他要去的最终地点的标号,最终的地点上的第二个数字就是密码在密码表上的序号。急先锋想要知道打开这个宝箱的密码,聪明的你能不能直接告诉他呢?
Input:
第一行两个数字n,m.(1<=n,m<=20)
接下来n个数字ai表示密码表上序号1到序号n的密码分别是多少。(1 <=ai<=100)
接下来m行每行两个数字u,v。(1 <= u<=m,1<= v <=n)
然后给你一个T,表示T次询问。(1<=T<= 20)
接下来的T行每行一个x,表示宝箱上的数字。(1<=x<=m)
Output:
一共T行。每行一个数字表示最后的密码。
Sample Input
5 4
1 2 3 4 5
2 4
3 3
1 2
2 5
2
1
2
Sample Output
3
2

题目解析:根据题意和测试用例可知,T行数的每一行代表一个宝箱上的数,宝箱上的数代表地点,地点里第一个数u[i]代表最终地点,最终地点的第二个数v[i]代表密码在密码表a[i]上的位置即索引,所以可得a[ v[ u[ x[ ] ] ] ] 即为宝箱密码。

下附上java8伪代码:

import java.util.Scanner;
public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);int n = in.nextInt();//键盘输入nint m = in.nextInt();//键盘输入mint[] a = new int[n];//数字a存放密码表int[] u = new int[n];//数组u存放地点x第一个数int[] v = new int[v];//数组v存放地点x第一个数for (int i = 0;i < n;i++){a[i] = in.nextInt();//输入密码表}for (int j = 0;j < m;j++){u[j] = in.nextInt();//输入地点x第一个数v[j] = in.nextInt();//输入地点x第二个数}int T = in.nextInt();//输入询问次数Tint[] x = new int[T];//数组x存放宝箱上的数字for (int k = 0;k < T;k++ ){x[k] = in.nextInt();//输入宝箱上的数组}for (int k = 0;k < T;k++ ){/*因为数组洗标是从0开始的,但输入数是从1开始的自然数所以此处-1*/int p =a[v[u[x[k]-1]-1]-1];//用p存储密码System.out.println(p);//输出密码}}
}

输入输出结果如下:最后两行为输出

5 4
1 2 3 4 5
2 4
3 3
1 2
2 5
2
1
2
3
2

下附上int p =a[ v[ u[x[ k ] ] ] ]结果的实现伪代码:

import java.util.Scanner
public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);int n = in.nextInt();//键盘输入nint m = in.nextInt();//键盘输入mint[] a = new int[n+1];//数字a存放密码表int[] u = new int[n+1];//数组u存放地点x第一个数int[] v = new int[m+1];//数组v存放地点x第一个数for (int i = 1;i <=n;i++){a[i] = in.nextInt();//输入密码表}for (int j = 1;j <= m;j++){u[j] = in.nextInt();//输入地点x第一个数v[j] = in.nextInt();//输入地点x第二个数}int T = in.nextInt();//输入询问次数Tint[] x = new int[T];//数组x存放宝箱上的数字for (int k = 0;k < T;k++ ){x[k] = in.nextInt();//输入宝箱上的数组}for (int k = 0;k < T;k++ ){int p =a[v[u[x[k]]]];//用p存储密码System.out.println(p);//输出密码}}
}

急先锋开宝箱问题(Java实现)相关推荐

  1. 青蛙过河 猴子爬山 兔子繁殖 开宝箱2 找气球 指针函数 铺地砖

    Problem A: 青蛙过河 Description 一条小溪尺寸不大,青蛙可以从左岸跳到右岸,在左岸有一石柱L,面积只容得下一只青蛙落脚,同样右岸也有一石柱R,面积也只容得下一只青蛙落脚.有一队青 ...

  2. C-11 Problem H: 开宝箱2

    Problem H: 开宝箱2 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1443 Solved: 860 Description 急先锋是一个商人 ...

  3. Problem AB: 开宝箱 1/2 (最沙雕的做法)(未用指针做) 改:附上一种指针做法...

    Description 急先锋是一个商人,有一天找到了一个宝箱,宝箱需要正确的密码才能打开.同时他发现宝箱上有一个数字,和一份密码表.密码表上有n个密码,只有一个密码是正确的. 急先锋所在的岛上有m个 ...

  4. 4444: 开宝箱——指针基础

    这道题目是我很喜欢的一道题,这道题目出的其实很好,就是把指针的知识点很好地融入到了这道题目里面,如果只是掌握指针的基本应用,我觉得这道题目完全就足够了,我一向不提倡题海战术,刷题要"精&qu ...

  5. FJUT 1735 开宝箱

    FJUT 1735 开宝箱 你确定我是来开宝箱不是来比赛的吗??艾玛,这是哪,天啊,伦家竟然穿越了. 摆在眼前的是1个n*m(0< n<=100&&0< m<= ...

  6. 61.蓝桥杯之电视台开宝箱节目

    电视台开宝箱节目:打进电话的人可以开启一个宝箱.箱子中有一件礼品.礼品是iphone的机率为1/12:是mp3 的机率为1/5:是洗衣粉的机率为1/2:剩余是KFC优惠券. 每次打进电话,宝箱会重置. ...

  7. 开宝箱抽奖CSS3动画代码

    下载地址 使用Zepto.js插件实现的开宝箱抽奖,动画效果配合CSS3代码,很不错的特效代码,特效基于Zepto.CSS3,其中有好几种CSS3动画效果,背景光环滚动,宝箱摇摆开启,弹出提示层,还是 ...

  8. zepto.js手机端开宝箱动画js特效

    下载地址 zepto.js实现的手机端开宝箱动画特效 dd:

  9. 开宝箱怎么设计才算好?大脑说了算!

    开宝箱怎么设计才算好?大脑说了算! 策划运营 /  2014-10-24 /  Brain Intelligence 分享到: 1 本文是Brain Intelligence(布雷恩英咨询公司)给游戏 ...

最新文章

  1. Mac OS X的快捷键
  2. 南岸焊接机器人厂_焊接技术的发展历史,世界焊接发展200年回顾,你了解焊接吗?...
  3. 数据中心的敏捷运维之路
  4. 观察者设计模式二:回调函数
  5. 独角兽公司 Sprinklr 获 1.05 亿美元 F 轮融资,估值 18 亿美元
  6. TF卡里删掉文件后内存没变大_内存卡损坏怎么修复?数据恢复方法教程
  7. 【人工智能课程实验】 - 利用贝叶斯分类器实现手写数字 的识别
  8. 17 软件源_9成职场人支持“准点下班”,2020年度职场报告:工作是最大焦虑源
  9. Flex Java Servlet 实现简单图片编辑
  10. C# 获取系统图标类
  11. 阿里巴巴CTO程立:CTO就是要给CEO扫清障碍和风险
  12. 计算机软件怎么装,电脑拷贝的软件怎么安装
  13. Kylin中cube优化
  14. 抖音04开头xgorgon、xlog、设备注册算法
  15. Win11安装OBS Studio的详细步骤图文教程
  16. 小白上路之javascript数组的介绍
  17. 电子商务网站测试经验总结
  18. 重测信度及常见评价方法
  19. js中常用到的一些解决问题方法(整理一些真正有效能够使用到项目中的方法)(等待不断更新积累)
  20. Intel x87 FPU的使用基础

热门文章

  1. 【阿里云高校计划】阿里云AI训练营_Day04_车辆检测系统
  2. es6--let和const
  3. 下列内容属于计算机房控制功能的是,前厅服务员中级理论知识试卷及答案2
  4. mysql autoenlist默认_Dapper MySql DateTime 异常
  5. Python打印二叉树的左视图、右视图
  6. python快速接手别人的代码_Python 爬虫代码,网上找的别人的,但是报错,求高手指点...
  7. python程序员专用壁纸_神级python程序员分享的让小白30分钟快速上手的一张神图,赶快收藏!...
  8. 1N4148的导通电压
  9. 《稀缺》塞德希尔·穆来纳森 / 埃尔德·沙菲尔
  10. 浅谈大数据服务平台架构与实践