結果
| 問題 |
No.95 Alice and Graph
|
| コンテスト | |
| ユーザー |
6soukiti29
|
| 提出日時 | 2017-08-18 22:35:41 |
| 言語 | Nim (2.2.0) |
| 結果 |
CE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,335 bytes |
| コンパイル時間 | 778 ms |
| コンパイル使用メモリ | 64,512 KB |
| 最終ジャッジ日時 | 2024-06-30 02:54:20 |
| 合計ジャッジ時間 | 1,138 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
/home/judge/data/code/Main.nim(5, 33) Error: type mismatch: got 'seq[int]' for 'map(split(readLine(stdin), {' ', '\t', '\v', '\r', '\n', '\f'}, -1), parseInt)' but expected 'tuple'
ソースコード
import sequtils,strutils,math
var
N,M,K,u,v : int
D : array[1..60, array[1..60, int]]
(N, M, K) = stdin.readline.split.map(parseInt)
for i in 1..N:
for j in 1..N:
D[i][j] = 200
for m in 1..M:
(u,v) = stdin.readline.split.map(parseInt)
D[u][v] = 1
D[v][u] = 1
for k in 1..N:
for i in 1..N:
for j in 1..N:
D[i][j] = min(D[i][j], D[i][k] + D[k][j])
var
p : int
tezyun = newSeqWith(1, 1)
x : int
DP : array[(1 shl 20) + 1,array[17,int]]
for n in countdown(N, 1):
if D[1][n] > K:
continue
tezyun.add(n)
for i in 1..(1 shl tezyun.high):
for j in 0..tezyun.high:
DP[i * 2 - 1][j] = 10000
DP[1][0] = 0
var k = 1
while k < (1 shl tezyun.len):
for p in 0..tezyun.high:
if DP[k][p] > K:
continue
for t in 1..tezyun.high:
if (k and (1 shl t)) == 0:
DP[k + (1 shl t)][t] = min(DP[k + (1 shl t)][t], DP[k][p] + D[tezyun[t]][tezyun[p]])
k += 2
var flag = false
for p in 1..tezyun.high:
if DP[(1 shl tezyun.len) - 1][p] <= K:
flag = true
break
if not flag:
discard tezyun.pop()
var ans : int64
for t in tezyun:
ans += (1.int64 shl (t - 1)) - 1
echo ans
6soukiti29