2006-02-01から1ヶ月間の記事一覧
遠慮は無用 なぜコードを公開するのか。
コードを極限まで縮めるためには知識・経験は勿論のこと強靭な精神力が必要だ。すべてのShort Coderは最短コード達成のため、何らかのポリシーを持っており、そのポリシーこそが我々をShort Coderたらしめるのだ。 Cheatコードの定義
getsを使うのはムズカシイ。 PKUではネットで公開されている問題を寄せ集めていて、テストケースも公開されている場合はそのまま使っている場合が多い。しかし独自に作成したテストケースも当然あるわけで、その場合は改行や空白の形式が統一されている保証…
前回(http://d.hatena.ne.jp/Ozy/20060221)書いた①〜④のすべてを実装するのは難しいので、まず①、②と③からはじめる。要するに④だけ後回し。
何とか200byteを切るコードがAcceptされた。 http://acm.pku.edu.cn/JudgeOnline/problemstatus?problem_id=1811&orderby=clen&language=-1 素数探索少しずつ高速化していったのだが、どうやら答えが"Prime"になるようなインプットは少ないようで、数百万か…
http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=1811 2〜2^54の範囲の数が入力値で、素数の場合はPrime、そうでない場合は最小の素因数を出力するというもの。どー考えても間違ってるとは思えないコードなのだがWAになる。TLEならまだしもWAって…
http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=2602 超長い足し算(まんま) 100万桁の足し算を短いコードで書くわけだが、数字を一桁ずつ配列に読み込んで筆算のように足して一文字ずつ出力して・・・とやるとGCCではTLE(時間切れ)になってし…
いくら損したか計算する問題(手抜き) 最短コード70B 入力は4つの整数で、 ①原価 ②売値 ③受け取った金額のうち偽のお金 ④渡したおつり なのだが、答えは①-②+③で出てくるので④は計算に必要が無い。
http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=1065 なんか難しそうな問題の中に、異常に短いコードがちらほら。さっき試しにイカサマコードを送ったらAcceptされたので、Length上位陣は答え埋め込み確定。あそこまであからさまだとさすがに気…
くりむらさんが大幅に短縮する方法を発見したので、私もちょっと遊んでみた。遊ぶといえば1000番。こんなコードが通っちゃったYO! class Main{ static{int j=-128; try{for(;j System.out.print(j); } }これで106バイト。ゼンゼン嬉しくない(笑) さっき外人…
そして教えて(笑) 1775番ではトラップがいくつかあるので、ちょっと書いておく。 最後のデータは-1とは限らない(負の数であることは確か) 2=0!+1!だからYES 26=2!+4!でYES(連続した値でなくてOK) 0のときはNO 2590番はid:kurimuraさんが驚異的な記録(95B)…
1775番 http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=1775 0!,1!,2!,...9!を組み合わせて、入力値に出来るか。できればYESできなければNOという問題。何気なーくやってみたのだが、結構奥が深い問題だと思った。最短コードはおそらく100バイト…
最短コード107B
注意点 解を求める式が出来上がったらコーディングに入るわけだが、最短コードを目指す際に、掛け算の計算を ①単純にやってしまうか ②ループの中に入れて足し算で済ますか の選択をしなければならない。 この問題の場合、ループ内で足し算をした方がコードが…
先回の続き
以下のような漸化式にしたがって、単純に計算する問題。 入力は、、と。 そのあとつづいて、が与えられる。 たとえば、入力が 1 50.50 25.50 10.15の時はという意味で、 である。 これらの値を用いて、の値を求める問題だ。 ポイントは、を一般的な式で表せ…
最短コード110B 速度と時間の変化が与えられていて、進んだ距離の合計を求めるというだけの問題。たとえば、 20 2 30 6 10 7というインプットであれば左の列が速度、右が時間を表していて、 0〜2秒間:秒速20マイル 2〜6秒間:秒速30マイル 6〜7秒間:秒速10…
http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=2602 100万桁のスーパー足し算。問題自体は超簡単だが、最短コードは超ムズーだ。117バイトまで縮んだがロベールさんの110バイトは超人レベル。完敗。腕に自信のある人は挑戦してみてチョ。 私の…
最短コード63B 答えは小さい順に2,3,4...と一つずつ増えているが、値が増えるタイミングというのが興味深い。
この手の問題は、カシコーなアルゴリズムをひねり出す前に答えがどうなっているのか調べた方が手っ取り早い。インプットの値は、5以上100以下に限定されているので、すべての答えを書き出してしまえばいいのだ。
http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=1218 酔っ払い看守 鍵の掛かったN個の独房がある。看守はN杯のウィスキーを飲むのだが、一杯目を飲んだ時はN個すべての独房の鍵を開ける。2杯目飲んだ時は、2,4,6...番目の独房の、A:鍵が掛かって…
1218番(http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=1218)と、2017番(http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=2017) をやって気分転換。クソ簡単なのでストレスが溜まらない。どちらも100B程度で書けるので、最短コーダー…
かなり高速なコード あれこれ悩んでいるものの、O(n^2)のコードが書けない。しかし最初のコードと比べると同じO(n^2*logn)でも非常に高速なものができた。
やっぱりTimeもMemoryもいい加減なのね 同じようなコードを大量にsubmitすることで、大体わかってきた。
体調は70%くらいにまで戻りました。多分大丈夫です。
O(N^2)のアルゴリズム ネットで調べていたら、http://ace.delos.com/MAR04.green.htm見つけた。 We can refine this algorithm by building things up. Suppose we fix minh and loop through the possibilities for minw in increasing order. As minw incr…
k.inabaさんのC++コードをCに書き換えておいた。よかったらドゾー。
稲葉さんスゴーということで、ちょっと質問メールをしてみたらソースコードばかりか丁寧な解説まで頂いた。転載も問題なしということでどどーんと公開。ほんと、ありがとうございます>稲葉さん 他のチャレンジャーも、これを参考に頑張っておくんなまし。
思ったより具合が悪いので更新ペースが極端に落ちます。。スマソ