SRM538-div1-2-div2-3-EvenRoute

来源:互联网 发布:latex有windows版么 编辑:程序博客网 时间:2024/05/16 18:04
zz:http://www.strongczq.com/2012/03/srm538-div1-2-div2-3-evenroute.html

题目原文:
http://community.topcoder.com/stat?c=problem_statement&pm=11808&rd=14729

题目大意:
     直角坐标系上有N个点,坐标用int[] x和 int[]y表示。现在从原点(0,0)出发,每步只能往上下左右四个方向中的一个移动距离1。要求遍历所有的这N个点,并且最终停止在某一个点上。那么,给定一个取值为0或1的数wantedParity,问有没有可能移动的步数奇偶性与wantedParity相同。
     数据规模:N取值为[1,50], 每个坐标值取值为[-1000000, 1000000]。
     

思路:
     这道题具有一定的迷惑性,其实仔细想想会发现,最终步数的奇偶性只与最终停留的点有关。
     为什么会这样?首先需要证明,从原点触发到某个点(x,y),无论路线如何,步数的奇偶性总是和|x|+|y|相同。
     证明:到达(x,y)点是,无论如何移动,x轴移动的步数必然是2*kx+|x|, y轴移动的步数必然是2*ky+|y|,所以总移动步数为2*(kx+ky)+|x|+|y|,奇偶性与|x|+|y|相同。
     根据该规律,我们只需要决定最后停留在那个点上就可以确定移动步数的奇偶性。因此遍历各个点的|x|+|y|值,只要存在一个奇偶性与wantedParity相同,答案就是肯定。

Java代码:

public class EvenRoute{      public String isItPossible(int[] x, int[] y, int wantedParity)      {            for(int i = 0; i < x.length; ++i){                  if((Math.abs(x[i]) + Math.abs(y[i])) % 2 == wantedParity % 2){                        return "CAN";                  }            }            return "CANNOT";      }}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 做试管取精困难怎么办 sw过膝靴往下掉怎么办 如果被绑架了该怎么办 怀孕了%2c怎么办%3f 狗狗拉肚子怎么办带血 同学们不和我玩怎么办 懒癌和拖延症怎么办 有严重的拖延症怎么办 有拖延症的人怎么办 10多天月经不停怎么办 20多天月经不停怎么办 月经来了十几天不停怎么办 例假20多天不停怎么办 苹果6dns被劫持怎么办 工地欠工资不给怎么办 买的狗得病了怎么办 剖腹产9天刀口痒怎么办 剖腹产6天刀口痒怎么办 剖腹产2年刀口痒怎么办 破腹产9天刀口痒怎么办 破腹产7天刀口痒怎么办 剖腹产8天伤口痒怎么办 刨腹产9天刀口痒怎么办 破腹产8天刀口痒怎么办 二胎刀口1.1mm薄怎么办 土豪养成记2闪退怎么办 爱上不该爱的人怎么办? 有妇之夫爱上我,怎么办 全身起疙瘩很痒怎么办 怀孕了肚子很痛怎么办 月经来肚子疼的厉害怎么办 孕妇9个月肚子疼怎么办 斗鱼身上长白点怎么办 8个月宝宝肚子疼怎么办 1岁半宝宝肚子痛怎么办 3岁宝宝肚子疼怎么办啊 吃的太辣肚子疼怎么办 2岁半宝宝肚子疼怎么办 2岁宝宝肚子痛哭怎么办 怀孕3个月拉肚子怎么办 一岁宝宝消化不良拉肚子怎么办