Hatena::Grouptopcoder

hama_DU@TopCoderへの道

2010-03-26Member SRM465(DIV2)

ノー コメント!

結果

問題結果ポイントその他
第一問(250pt)Passed System Test157.66
第二問(500pt)Opened0.00問題文は最初からきちんと読みましょう。
第三問(1000pt)Opened0.00パッと見で地雷だと理解した

Rating: -88(1163 > 1075)

SRM465 div2 第一問(250点)

| SRM465 div2 第一問(250点) - hama_DU@TopCoderへの道 を含むブックマーク はてなブックマーク - SRM465 div2 第一問(250点) - hama_DU@TopCoderへの道

http://www.topcoder.com/stat?c=problem_statement&pm=10821

簡単。だけどバブルソート実装してて提出するのが遅くなってしまった。

敗因その一。


短く書き直した。


public class NumberNeighbours {

	public int numPairs(int[] numbers) {
		int length = numbers.length;
		for (int i = 0 ; i < length ; i++) {
			String x = String.valueOf(numbers[i]);
			int xlength = x.length();
			char chars[] = new char[xlength];
			x.getChars(0, x.length(), chars, 0);
			java.util.Arrays.sort(chars);
			numbers[i] = Integer.valueOf(String.copyValueOf(chars));
		}

		int answer = 0;
		for (int i = 0 ; i < length ; i++) {
			for (int j = i + 1 ; j < length ; j++) {
				if (numbers[i] == numbers[j]) {
					answer++;
				}
			}
		}
		return answer;
	}

}


SRM465 div2 第二問(500点)

| SRM465 div2 第二問(500点) - hama_DU@TopCoderへの道 を含むブックマーク はてなブックマーク - SRM465 div2 第二問(500点) - hama_DU@TopCoderへの道

http://www.topcoder.com/stat?c=problem_statement&pm=10840

塔の座標が与えられて、2つの塔を置こうとすると

サイズと位置が何パターン置けますかーな問題。

全ての座標に塔を建てようとして自滅。2つずつでよかったのに。

Challenge Phaseで500をみんな同じ解き方をしてて、

なんでこれでいいんだろう、と思い、

はじめて問題をまともに読む気になった。

敗因その二。


SysTestに通ったコードはこちら。


public class TurretPlacement {
	public long count(int[] x, int[] y) {
		int length = x.length;
		long answer = 0;
		for (int i = 0 ; i < length ; i++) {
			for (int j = i + 1 ; j < length ; j++) {
				long ax = x[i];
				long ay = y[i];
				long bx = x[j];
				long by = y[j];
				long numnum = (long) Math.sqrt(((ax - bx) * (ax - bx) + (ay - by) * (ay - by)) * 4);
				answer += numnum * (numnum - 1) / 2L;
			}
		}
		return answer;
	}
}

ねっ、簡単でしょ?