Codingame一道中等难度的题目

要求

Knight会获得以当前位置为坐标中心的导航指示(U, UR, R, DR, D, DL, L or UL)

  • U -> Up
  • D -> Down
  • R -> Right
  • L -> Left
    根据指示到达目标点

思路

应用了对分查找,大量减少猜测范围。

代码

import java.util.*;
import java.io.*;
import java.math.*;/*** Auto-generated code below aims at helping you parse* the standard input according to the problem statement.**/
class Player {public static void main(String args[]) {Scanner in = new Scanner(System.in);int W = in.nextInt(); // width of the building.int H = in.nextInt(); // height of the building.int N = in.nextInt(); // maximum number of turns before game over.int X0 = in.nextInt();int Y0 = in.nextInt();int startX = 0,endX = W-1,middleX = -1;int startY = 0,endY = H-1,middleY = -1;System.err.println(W+" "+H);// game loopwhile (true) {String bombDir = in.next(); // the direction of the bombs from batman's current location (U, UR, R, DR, D, DL, L or UL)if(bombDir.contains("U")){if(middleY == -1)endY = Y0 - 1;elseendY = middleY-1;}else if(bombDir.contains("D")){if(middleY == -1)startY = Y0 + 1;elsestartY = middleY+1;}if(bombDir.contains("R")){if(middleX == -1)startX = X0 + 1;elsestartX = middleX+1;}else if(bombDir.contains("L")){if(middleX == -1)endX = X0 - 1;elseendX = middleX-1;}middleX = getMiddle(startX,endX);middleY = getMiddle(startY,endY);// Write an action using System.out.println()// To debug: System.err.println("Debug messages...");// the location of the next window Batman should jump to.System.out.println(middleX+" "+middleY);}}public static int getMiddle(int start,int end){return (start+end)/2;}
}

后续修正

突然发现之前没有提交,在正式提交时发现塔的那一关未达成,于是在第一次确定搜索范围时,去除了原先站的位置。于是达成100%.

CodingGame - Shadows of the Knight - Episode 1思路相关推荐

  1. 【python】CodingGames Shadows of the Knight - Episode 1

    CodingGames 之 蝙蝠侠救人 描述: 你是蝙蝠侠,你将通过使用你的抓斗枪从一个窗口跳到另一个窗口来寻找给定建筑物上的人质.您的目标是跳到人质所在的窗口以解除炸弹的武装.不幸的是,在炸弹爆炸之 ...

  2. [Algorithm]九章九之一:Matrix DP

    109. Triangle:点击打开链接 方法一:自底向上 例如:从6开始,依赖于4和1中小者,再加上本身 注意:这种三角形第n行的长度是n+1,一共有n-1行,第0行的长度为1, Time:O(n^ ...

  3. POJ-2243-Knight Moves

    题目 Description A friend of you is doing research on the Traveling Knight Problem (TKP) where you are ...

  4. ​Microbiome:海南大学张家超、Rob Knight等揭示益生菌在宿主肠道内适应性进化规律...

    Microbiome:海南大学张家超组联合Rob Knight揭示益生菌在宿主肠道内适应性进化规律 2021年7月1日,海南大学食品科学与工程学院与加州大学Rob Knight 实验室和哈佛医学院刘洋 ...

  5. Science:Knight组发表尸体降解过程中的微生物组

    Metcalf, J. L., et al. (2016). "Microbial community assembly and metabolic function during mamm ...

  6. Sciences:Knight组发表尸体降解过程中的微生物组

    Metcalf, J. L., et al. (2016). "Microbial community assembly and metabolic function during mamm ...

  7. Nature子刊:Knight组发布快速UniFrac算法

    Striped UniFrac微生物组大尺度分析算法 Striped UniFrac: enabling microbiome analysis at unprecedented scale Natu ...

  8. “一不小心”成为大佬:Rob Knight 的传奇故事

    编者按: 微生物组研究工作者们肯定对 UniFrac 和 QIIME 这两个数据分析工具及其开发者 Rob Knight 很熟悉. Rob Knight 是加州大学圣地亚哥分校生物工程.儿科.计算机科 ...

  9. Nature Methods:Rob Knight发布Striped UniFrac算法轻松分析微生物组大数据

    Striped UniFrac微生物组大尺度分析算法 Striped UniFrac: enabling microbiome analysis at unprecedented scale Natu ...

最新文章

  1. leetcode算法题--最大平均值和的分组★
  2. 汇编中的数组分配和指针
  3. DCMTK:Irradiation事件识别测试FG类
  4. Linux终端操作MySQL常用命令
  5. java 多态性 接口_Java中的多态性和接口
  6. 扎克伯格公开信:Facebook拥有五大核心价值
  7. 何时不应该使用 Rails?
  8. mysql没有索引删除一亿数据_mysql数据库如何实现亿级数据快速清理
  9. 服务器内存太小,伤不起![异常与应用程序池引发的连锁命案]
  10. 基于java的试题库管理系统(java CS窗体版)
  11. 游戏开发中的基本数学与物理
  12. 微信小程序原生自定义组件布局问题
  13. 在线PS照片处理工具 无需下载怎么编辑图片
  14. datetime的时值
  15. HoughCircles()函数 画圆心和圆的轮廓
  16. 安卓逆向-修改APK-战斗直接胜利
  17. 人人商城,资金转账功能开发,让余额可以在会员中心自由流通
  18. mysql 截取括号内字符串_Mysql字符串截取_获取指定字符串中的数据
  19. [土狗之路]coursera 与 oj上的递归练习作业-- 单词翻转 角谷猜想
  20. 【Python学习笔记】第一章基础知识:格式化输出,转义字符,变量类型转换,算术运算符,运算符优先级和赋值运算符,逻辑运算符,世界杯案例题目,条件判断if语句,猜拳游戏与三目运算符

热门文章

  1. 涡轮发动机的推力有多大?
  2. 这是一个通过c语言来把NX10.0画的直线等关键数据提取出来,可以通过电脑端显示,并可以通过CIMCO Edit8来验证;
  3. 刚刚 ,中国联通5G时空服务行业应用白皮书发布(附下载)
  4. 叮当叮当的优势在那里
  5. 翻译软件免费版下载-汇集免费批量翻译软件大全下载
  6. Windows下编译OpenCV+opencv_contrib
  7. 干货|红蓝攻防实战演练技术汇总
  8. 凝思系统查看防火墙_凝思linux VNC远程桌面,8个步骤完成凝思linux VNC远程桌面...
  9. 架构师必须清楚的支付系统--对账系统详解
  10. 520,焊武帝为女朋友制作的硬核礼物