2022/7/24(日)

vive trackerが届いた。おととい本当にたまたま入荷しているのを見かけたので急いで買った格好だ。

OpenXRでサポートされているようなので頑張って位置座標を取得した。なぜか自作アプリからの認識が微妙に安定しなかったのだが、しばらく格闘していたら急に安定した。どういうこと?SteamVRからの認識自体は最初から安定していたのだが。

XR_HTCX_vive_tracker_interactionという拡張でサポートされている。

https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#XR_HTCX_vive_tracker_interaction

Provisional(仮の) Extensionという形でのサポートなので将来的にどうなるかはよく分からないが、まあコンシューマ向けとしてかなり人気のデバイスなのでそのうちもうちょっと正式な感じでサポートされるだろう。


今日解いた競プロの問題。

ABC261-F: twitterのトレンドにもなっていた通り、全体の転倒数-色ごとの転倒数。本番では通せなかった。

実は本番中にここまでは思いついていたので、

rep(i, n) {
  rep(j, i) {
    if (x[j] > x[i] && c[j] != c[i])
      ans++;
  }
}

こういう変形さえできればあともう答えが目と鼻の先だった。惜しいことをした。

rep(i, n) {
  rep(j, i) {
    if (x[j] > x[i])
      ans++;
  }
  rep(j, i) {
    if (x[j] > x[i] && c[j] == c[i])
      ans--;
  }
}

転倒数は(座圧すれば)$O(N\log N)$で求められることを踏まえると、色ごとの転倒数の総和は全体$O(N\log N)$で求められる。この償却計算量に気付けなかったのも痛かったのかもしれない。

Categories: