UVa1263
グラフにする。
強連結成分分解して、頂点の入次数を見る。
強連結成分分解のコードは省略。だいたいスパソと同じ。
3/25/2012
3/24/2012
UVa12338
UVa12238
接尾辞配列ライクなことをやる。
与えられた文字列をソートし、となりあう文字列の一致する最長のプレフィックス (LCP) を求める。
それに RMQ を使ってクエリーを処理する。
A[i] と A[i+1] のプレフィックスが n 文字目まで一致していて、
A[i+1] と A[i+2] のプレフィックスが m 文字目まで一致していれば、
A[i] と A[i+2] は min(n, m) 文字目までのプレフィックスが一致していることになる。
A[j]とA[k]のプレフィックスはRMQ(j, k)文字目まで一致することになる。
このアプローチで実行時間が3秒強。タイムリミットが5秒。
ラディックスソートとか使えばもっと早くなるかも?
3/23/2012
SRM537 Div2 Hard
925
とりあえず、グラフにする。
あるトーストを学ぶために食べるトーストの枚数は最小で1、最大でルートまでの距離
全ての頂点に関して試す。
点数も1000より低いし、本番でも40人以上が通してるけど、そんなに簡単とは思えなかった。
とりあえず、グラフにする。
あるトーストを学ぶために食べるトーストの枚数は最小で1、最大でルートまでの距離
全ての頂点に関して試す。
点数も1000より低いし、本番でも40人以上が通してるけど、そんなに簡単とは思えなかった。
SRM502 Div2 Hard
1000
DPする。
DP[何匹目まで見た mod 2][数字の合計 mod N][何匹が逃げた];
この実装だと、実行時間がそうとうギリギリ。
テーブルの半分を毎回初期化するのはもちろん、剰余算を少し余計にやっただけでアウト。
DPする。
DP[何匹目まで見た mod 2][数字の合計 mod N][何匹が逃げた];
この実装だと、実行時間がそうとうギリギリ。
テーブルの半分を毎回初期化するのはもちろん、剰余算を少し余計にやっただけでアウト。
3/22/2012
3/21/2012
SRM Div2 まとめ
300代あたりは後でマージするかも?
SRM400 Easy Medium Hard
SRM401 Easy Medium Hard
SRM402 Easy Medium Hard
SRM403 Easy Medium Hard
SRM404 Easy Medium Hard
SRM405 Easy Medium Hard
SRM406 Easy Medium Hard
SRM407 Easy Medium Hard
SRM408 Easy Medium Hard
SRM409 Easy Medium Hard
SRM410 Easy Medium Hard
SRM411 Easy Medium Hard
SRM412 Easy Medium
SRM413 Easy Medium Hard
SRM435 Easy Medium Hard
SRM436 Easy Medium Hard
SRM437 Easy Medium Hard
SRM439 Easy Medium Hard
SRM440 Easy Medium Hard
SRM501 Hard
SRM502 Hard
SRM503 Hard
SRM520 Hard
SRM521 Hard
SRM523 Hard
SRM524 Hard
SRM526 Hard
SRM526.5 Hard
SRM527 Hard
SRM528 Hard
SRM529 Hard
SRM531 Hard
SRM532 Hard
SRM533 Hard
SRM534 Hard
SRM536 Hard
SRM537 Hard
SRM544 Easy Medium
SRM549 Easy Medium
SRM550 Easy Medium Hard
SRM551 Easy Medium Hard
SRM551 Easy Medium Hard
SRM400 Easy Medium Hard
SRM401 Easy Medium Hard
SRM402 Easy Medium Hard
SRM403 Easy Medium Hard
SRM404 Easy Medium Hard
SRM405 Easy Medium Hard
SRM406 Easy Medium Hard
SRM407 Easy Medium Hard
SRM408 Easy Medium Hard
SRM409 Easy Medium Hard
SRM410 Easy Medium Hard
SRM411 Easy Medium Hard
SRM412 Easy Medium
SRM413 Easy Medium Hard
SRM435 Easy Medium Hard
SRM436 Easy Medium Hard
SRM437 Easy Medium Hard
SRM439 Easy Medium Hard
SRM440 Easy Medium Hard
SRM501 Hard
SRM502 Hard
SRM503 Hard
SRM520 Hard
SRM521 Hard
SRM523 Hard
SRM524 Hard
SRM526 Hard
SRM526.5 Hard
SRM527 Hard
SRM528 Hard
SRM529 Hard
SRM531 Hard
SRM532 Hard
SRM533 Hard
SRM534 Hard
SRM536 Hard
SRM537 Hard
SRM544 Easy Medium
SRM549 Easy Medium
SRM550 Easy Medium Hard
SRM551 Easy Medium Hard
SRM551 Easy Medium Hard
3/20/2012
3/19/2012
SRM523 Div1 Medium
500
メモ化する。
memo[h][w]=ベースの幅がwのブロックに高さhまでブロックを置くときのパターン数
ある幅を長さK以下のブロックで埋めようとしたとき、どれくらいのパターンがあるかを前もって計算しておく。
メモ化する。
memo[h][w]=ベースの幅がwのブロックに高さhまでブロックを置くときのパターン数
ある幅を長さK以下のブロックで埋めようとしたとき、どれくらいのパターンがあるかを前もって計算しておく。
3/18/2012
tabbar.elのグループ化機能をせっかくだから使ってみる
ググッて調べてみても、グループ化しているブログの記事をあまり見ない。もちろん、自分でも使っていない。
でも、せっかくだから使ってみる。
デフォだとメジャーモードでタブをグループ化する様になっている。
私感ではこれが使いやすいとは思えないので、自分でグループ化する機能を描いてみる。
まだ使い込んだわけではないので、バグの1つもあると思うけど、そこはご愛嬌。
もう tabbar をいじるのに飽きてきた。
でも、せっかくだから使ってみる。
デフォだとメジャーモードでタブをグループ化する様になっている。
私感ではこれが使いやすいとは思えないので、自分でグループ化する機能を描いてみる。
まだ使い込んだわけではないので、バグの1つもあると思うけど、そこはご愛嬌。
もう tabbar をいじるのに飽きてきた。
3/11/2012
SRM491 Div1 Easy
250
向かい合った数の合計を決める。その合計を実現できる数字の組みの数を数える。そこから3つ選ぶ。
数字の組み3つから2種類のサイコロが作れるらしい。
こんな感じで出るだろ。 =>> お?全部1/2だ。 =>> 2種類作れるのか?とりあえず2倍しとけ。
みないな推測。場合によってはとても危険な方法だけど。
向かい合った数の合計を決める。その合計を実現できる数字の組みの数を数える。そこから3つ選ぶ。
数字の組み3つから2種類のサイコロが作れるらしい。
こんな感じで出るだろ。 =>> お?全部1/2だ。 =>> 2種類作れるのか?とりあえず2倍しとけ。
みないな推測。場合によってはとても危険な方法だけど。
3/06/2012
tabbar.elのタブを閉じる。
現在のタブから右側もしくは左側のタブを全て閉じるelisp。
tabbar.elのタブが増えたとき、一部だけ閉じるのが面倒だった。
ほとんど閉じないバッファ(howmとかeshell)を一番左に寄せる習慣があるので、面倒が解消するかも?
動作確認は、これから使いながら済ませる。
tabbar.elのタブが増えたとき、一部だけ閉じるのが面倒だった。
ほとんど閉じないバッファ(howmとかeshell)を一番左に寄せる習慣があるので、面倒が解消するかも?
動作確認は、これから使いながら済ませる。
3/04/2012
SRM535 Div1 Easy
250
LCM / GCD を素因数分解する。
あとは、各素数の累乗をどちらの数字に割り当てるかを全通り試す。
最初の素数20個の積がgoogle先生曰く5.5794083 × 10^26らしい。
問題の制約上、これで充分間に合う。
本番では、オーバーフローのことを考えていなかった。ツラい。
LCM / GCD を素因数分解する。
あとは、各素数の累乗をどちらの数字に割り当てるかを全通り試す。
最初の素数20個の積がgoogle先生曰く5.5794083 × 10^26らしい。
問題の制約上、これで充分間に合う。
本番では、オーバーフローのことを考えていなかった。ツラい。
登録:
投稿
(
Atom
)