すごいつまづきました。
そして、不便だと思いました。
解決法などは
こちらのブログを参考してください。
AndroidのRadioGroupを改造し、子孫要素を全部グループ化できるようにした
http://blog.maripo.org/2011/09/android-deep-radio-group/
2014年1月11日土曜日
2014年1月7日火曜日
SRM 603 Div2 Easy/Medium
SRM 602 Div3 Easy MiddleCode
回答substringの仕様に気をつけて頑張るだけ
substring(a,b) は aからb-1 までの文字
public String encode(String s)
{
String t = "";
while (s.length() > 1) {
int mid = s.length() / 2;
if (s.length() % 2 == 1) {
t += s.charAt(mid);
s = s.substring(0, mid) + s.substring(mid + 1);
} else {
if (s.charAt(mid - 1) < s.charAt(mid)) {
t += s.charAt(mid - 1);
s = s.substring(0, mid - 1) + s.substring(mid);
} else {
t += s.charAt(mid);
s = s.substring(0, mid) + s.substring(mid + 1);
}
}
}
return t + s;
}
SRM 603 Div2 Medium SplitIntoPairs
回答なんとAを昇順にソートして、そのとなりの要素とかけてXより大きかをチェックするだけという。
あとは、オーバーフローに気をつけてlong にキャストするのは忘れずに
理由
負*負,正*正 はもちろん正になるため、普通にカウントできる
問題は
負*正 この組み合わせの時でこれがXより大きいかが問題。
ソートすると隣り合った負*正 が一番大きくなります。(絶対値が小さくなります)
これを判定するだけです。
そして、うまく組み合わせると こんなシンプルになります。
public int makepairs(int[] A, int X)
{
Arrays.sort(A);
int count = 0;
for (int i = 0; i < A.length ; i += 2) {
if ((long) X <= ((long) A[i]) * A[i + 1]) {
count++;
}
}
return count;
}
登録:
コメント (Atom)