ICPC World Finals 1日目
プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã‚³ãƒ³ãƒ†ã‚¹ãƒˆã§ã¯ãƒ—ãƒã‚°ãƒ©ãƒ ã®å®Ÿè¡Œæ™‚間を把æ¡ã™ã‚‹äº‹ãŒé‡è¦ã 。 実行時間ã®è¦‹ç©ã‚‚りを誤り〠時間制é™ã‚’オーãƒãƒ¼ã—ã¦ã—ã¾ã†ã‚³ãƒ¼ãƒ‰ã‚’書ã„ã¦ã—ã¾ã†ã¨ã€ ãã®ã¶ã‚“時間をãƒã‚¹ã—ã¦ã—ã¾ã†ã€‚ ICPCã®ã‚ˆã†ã«ã‚³ãƒ³ãƒ”ュータãŒ1å°ã—ã‹ä½¿ãˆãªã„ãƒãƒ¼ãƒ 戦ã§ã¯ãªãŠã•ã‚‰ã§ã‚る。
ãã“ã§ã€ICPC World Finalsã‚’å‰ã«æŽ§ãˆãŸãƒ†ã‚£ãƒ¼æ°ã¯ãƒ—ãƒã‚°ãƒ©ãƒ ã®å®Ÿè¡Œæ™‚é–“ã‚’æš—ç®—ã§æ±‚ã‚る訓練を始ã‚ã‚‹ã“ã¨ã«ã—ãŸã€‚ 「logã¯å®šæ•°ã®ã‚ˆã†ãªã‚‚ã®ã€ãªã®ã§ã€ã¾ãšã¯å¤šé …å¼ã«å–り組むã¨ã—よã†ã€‚
ã‚ã‚‹å•é¡Œã®ç”ãˆã‚’計算ã™ã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ ã¨ã€ãれを実行ã™ã‚‹ã‚³ãƒ³ãƒ”ュータãŒã‚る。 å•é¡Œã®å…¥åŠ›ã‚’表ã™æ£æ•´æ•°n〠入力nã«å¿œã˜ã¦ãƒ—ãƒã‚°ãƒ©ãƒ ä¸ã§å®Ÿè¡Œã•ã‚Œã‚‹å‘½ä»¤ã®æ•°ã‚’表ã™å¤šé …å¼f(n)〠コンピュータã®1命令ã®å®Ÿè¡Œæ™‚é–“T[ナノ秒](=10−9[秒])ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚ å¤šé …å¼f(n)ã®å›žæ•°ã ã‘命令を実行ã—ãŸæ™‚ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã®ç·å®Ÿè¡Œæ™‚é–“ãŒ1秒「以下ã€ã§ã‚ã‚‹ã‹ã‚’判定ã—〠1秒「以下ã€ã§ã‚ã‚‹ãªã‚‰ã°ç·å®Ÿè¡Œæ™‚間を求ã‚よ。
n T f(n)
1行目㫠å•é¡Œã®å…¥åŠ›ã‚’表ã™æ£æ•´æ•°n㨠1命令ã®å®Ÿè¡Œæ™‚é–“[ナノ秒]を表ã™æ•´æ•°TãŒç©ºç™½åŒºåˆ‡ã‚Šã§ä¸Žãˆã‚‰ã‚Œã‚‹ã€‚ 2行目ã«å®Ÿè¡Œã•ã‚Œã‚‹å‘½ä»¤ã®æ•°ã‚’表ã™å¤šé …å¼f(n)ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
å¤šé …å¼f(n)ã¯ä»¥ä¸‹ã®BNFã§è¡¨ã•ã‚Œã‚‹ã€‚
<poly> ::= <poly> "+" <mono> | <mono> <mono> ::= "n^" <num> <num> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
ã“ã“ã§å„å˜é …å¼n^kã¯ã€nã®k乗を表ã™ã€‚
プãƒã‚°ãƒ©ãƒ ã®ç·å®Ÿè¡Œæ™‚é–“ãŒ1秒「以下ã€ã§ã‚ã‚‹å ´åˆã«ã¯ç·å®Ÿè¡Œæ™‚é–“ã‚’[ナノ秒]å˜ä½ã§ã€1秒を「超éŽã€ã™ã‚‹å ´åˆã«ã¯"TLE"ã‚’1è¡Œã«å‡ºåŠ›ã›ã‚ˆã€‚
100 100 n^1+n^2+n^3
101010000
ç·å®Ÿè¡Œæ™‚é–“ã¯(1001+1002+1003)×100[ナノ秒]ã§ã‚る。
1000 1 n^3+n^0
TLE
ç·å®Ÿè¡Œæ™‚é–“ã¯10003+10000=109+1[ナノ秒]ã§ã‚ã‚Šã€1[秒]を超ãˆã¦ã—ã¾ã†ã€‚
100000000 100000000 n^3
TLE
ç·å®Ÿè¡Œæ™‚é–“ã¯(108)3×108=1032[ナノ秒]ã§ã‚る。