パリティとは
偶数と奇数に関する性質のことを指すらしい。(全くしらん)
C - Same Integers
全くわからず。なんとなーく3つの数字の和が関係している&3つの数字の最大値は関係があるような気はしたけど、
3つの値の最大値*3(または最大値+1*3)
を導くことと、+1,+1しても+2しても3つの数字の和の偶奇が変わらない性質
に気づけませんでした.
例えば例1に関して実証してみると
確かにそうなってます。そして元々の和が奇数だった場合に(最大値+1)*3が偶数になってる場合は必ず答えとして合致しません。
この性質自体がわかればコードに落とし込むのはさほど難しくないはず
A - Addition
久々に解説見ずに解けた...
要はこれは奇数と奇数を足したら偶数にしかないので、与えられた数字の中に奇数の数字が奇数しかなかったら
偶数から偶数は作れないので、NO
になります.
A - Move and Win
A-Bの距離差をmod2したときの答えによって回答が変わります。
適当にシミュレートしたら、お互いの初期地点をmod2したらそれで答えがでたと思ったのでそういう解き方してもACになっちゃいました...
import java.util.Scanner; public class Main165 { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { int n = sc.nextInt(); int a = sc.nextInt(); int b = sc.nextInt(); if(a%2 == 0 && b%2 == 0) { System.out.println("Alice"); } else if(a%2 != 0 && b%2 != 0) { System.out.println("Alice"); } else if(a%2 == 0 && b%2 != 0) { System.out.println("Borys"); } else if(a%2 != 0 && b%2 == 0) { System.out.println("Borys"); } else { System.out.println("Draw"); } } }
C - Walking Takahashi
めちゃいい問題。
地点 から 移動距離 を制限移動回数 まで移動した時の最小座標を求めろという問題
最小座標を求めるということは、0に近い地点を求めるということ&かつ絶対値を求めよとなっているので正/負は気にしなくて良い
もし をした際に答えが0以上なら回では0までたどり着けないので、それが答えになる、、が、制約が1015なのでオーバーフローする。
としておけば、大丈夫。解が以上であればでは目的地までたどり着けないので、同じ意味になる。
問題の肝は以下の場合。その場合は、とすれば残りの移動距離が判明する
残移動回数は、で求まるため、残移動回数が偶奇かによって答えは変わる。
偶数なら丁度移動回数が終了したため、。奇数の場合はもう一回移動しないといけないといけないのでとなる。
long ans = 0; if(x/d>=k) { System.out.println(x - d*k); } else { long nk = k - x/d; long nx = x % d; if(nk%2==0) System.out.println(nx); else System.out.println(Math.abs(nx-d)); }