2007年08月13日

[PKU]PKU2003

http://acm.pku.edu.cn/JudgeOnline/problemstatus?problem_id=2003&orderby=clen&language=-1
2003.png
「C++よ、天に還るときが来たのだ」

と、ケンシロウの名セリフをですな。

まぁ、種明かしすると、だれも重鎮がマジメに挑戦してないから
たまたま一位取れてるだけー。
ozy氏とかやねうらお氏がマジメに挑戦されちゃったりしたら
多分瞬殺されるとおもうけど。

もうちょっと削れそうなんだけど、TLEとの戦いになっちゃって。
Scannerが使えたらいいんだけど、遅いんだよね。

Scanner s=new Scanner(System.in);

BufferedReader s=new BufferedReader(new InputStreamReader(System.in),1<<13);

だと「import java.io.*;」も余計にいるし、文字数多いよ、Reader。




posted by koteitan at 10:23| Comment(0) | TrackBack(0) | PKU | このブログの読者になる | 更新情報をチェックする

2007年08月08日

[PKU]PKU1005

超久々にやってみた。(ヒマだったともいう。)
1005、問題は年々50平方マイルずつ広がってくる
半円に、自分の座標が入っちゃうには何年かかるのか、て問題。
単純にxy平面上の原点からの距離を求めて、半径内かどうかで
OKなんだが。

最初に書いたコードで338B。
ここから頑張って、同点1位までは到達(320B)。
あと1バイトでも縮めばッ!

で、最終的に318B。ここらへんで勘弁してくれ。
残り2バイトが何故縮んだか、ゆとり教育のたまもの(w
ピコピンときたのだ。半ば反則だけどなぁ。

あっしはゆとり教育世代じゃない、ただのオッサンだけどな。
posted by koteitan at 18:19| Comment(0) | TrackBack(0) | PKU | このブログの読者になる | 更新情報をチェックする

2007年05月10日

2602、Accept!!キタ━━━━(゚∀゚)━━━━!!

来たぜよ、来たぜよ。
結局、BufferdReadrで読み込み高速化と
int[] → char[] → String という変換で
一気にOutputを作成して、出力のループを減らした。
(そのかわりメモリ消費はエライ増えた)

結論
 ・凝った最適化(のつもり)は速くない。
 ・結構メモリ使っても問題ない
 ・入力値がインチキなことがある。

まぁ、100万というと大きいけど、つまりは1メガでしょ
今時では当たり前なのかのぅ…。
まだ、縮められると思うけど、もう一位だから、これでいいとしておこう。

あと、入力に空行とか〜⊂´⌒∠;゚Д゚)ゝつ イ、イッテヨシ...
RuntimeErrorに悩んだのはこれのせいである、多分。
charAt()がIndexOutOfBoundsExceptionだったんだろうな。
posted by koteitan at 10:02| Comment(0) | TrackBack(0) | PKU | このブログの読者になる | 更新情報をチェックする

2007年05月09日

2602…orz

ウワァァァァァァヽ(`Д´)ノァァァァァァン!
なんだよ、2602。TimeLimitErrorにしかならねぇよッ。

Scannerが遅いってことは解ってるんだよ…、
正規表現なんだから。orz
かといって、InputStream直読みだと、改行コードが解らないから

while((v=System.in.read())!=-1)
{
if(v<48) conitnue;


みたく1byteずつの読み出しだからこれまた遅いので
TLE。もうヽ(τωヽ)ノ モウダメポ
LineNumberReaderで一行ずつ読むか、Bufferdかまして
一気に大量にReadして、うーむ…。
まさかこんなに強敵だとわ。scanfヽ(`Д´)ノクレヨ

明日もう一回挑戦しよ…。
 ・BufferdInputStreamをかます
 ・Reade.readLineに頼ってみる
 ・一気に全部読み込み、nio経由





posted by koteitan at 19:01| Comment(0) | TrackBack(0) | PKU | このブログの読者になる | 更新情報をチェックする

[PKU]PKU2602

JDK5.0の勉強にもうちょっとPKUをやってみている。
問題文の意味がなんとなく読めるヤツをあてずっぽうに
試してみているのだが、この2602で止まってしまったよ。orz

100万桁の足し算なんだが、javaにはBigIntegerがあるぜ!

(*゚∀゚)ェェェェェエエエエエエエィァァキミカラモラァイナァキィィィィィィィィィィィィィィィィ
だめだ。100万桁を入力すると終わる気配がない。
こりゃ正攻法ではダメだ。

配列・・・か? Classic JVMでも27bitのレンジがあるから
JDK5なら余裕かなー。
っと書いてみたが、RuntimeError。

お前は次にッ
「ローカルでは動くのですが。」
と言うッッ!!!

(_ _lll)ァハハ・・・
posted by koteitan at 00:23| Comment(0) | TrackBack(0) | PKU | このブログの読者になる | 更新情報をチェックする

[PKU]初体験北京大学

いつも拝見させていただいているやねうらお氏のblogで
PKU参加を煽られていたので、乗ってみようと思った。
( http://d.hatena.ne.jp/yaneurao/20070504 )
言語にJavaが選べるようになっているし、JDKも5だから
それなりに勉強にはなるかナーと。(腕試しにもなるしね)
まぁC言語じゃない時点で、土俵から逃げてるとも言うが。(´・ω・`)
煽られていた問題はPKU1915である。
どれどれ、


  ( _, ,_)      ・・・Knight?
_(__つ/ ̄ ̄ ̄/_  ・・・chess-move?
  \/    ./    ・・・a side of the chess bord (4 <= l <= 300)

  (;_, ,_)     ・・・あ、アルゴリズム問題ッ!!
_(__つ/ ̄ ̄ ̄/_ ・・・こりゃあかん、勝負以前の問題ッ!!
  \/    ./

というわけで勝負から逃げた。敵前逃亡。
負ける戦はしない、と昔のエロイ人も言っていたはず。
戦略的撤退。
多分、ビット演算の魔術を駆使するんだと思う。
でないと最悪の場合、300のn乗の演算になってしまい、TLE。
それこそブルージーンを持ってこないといけなくなってまう。

続きを読む
posted by koteitan at 00:01| Comment(0) | TrackBack(0) | PKU | このブログの読者になる | 更新情報をチェックする