結果
問題 | No.562 超高速一人かるた small |
ユーザー | 6soukiti29 |
提出日時 | 2017-08-26 08:50:38 |
言語 | Nim (2.0.2) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,270 bytes |
コンパイル時間 | 864 ms |
コンパイル使用メモリ | 64,964 KB |
最終ジャッジ日時 | 2024-11-14 20:14:19 |
合計ジャッジ時間 | 1,366 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
/home/judge/data/code/Main.nim(36, 14) Error: undeclared identifier: 'countBits32' candidates (edit distance, scope distance); see '--spellSuggest': (4, 4): 'countIt'
ソースコード
import sequtils,strutils,math const Mo : int64 = 1_000_000_007 var N = stdin.readline.parseInt s : string S = newSeq[string](0) dp : array[1100_000, int64] P : array[21,int64] ans : array[21, int64] cnts : array[21, int64] lcm : array[21, array[21,int64]] P[0] = 1 for i in 1..20: P[i] = P[i - 1] * i for n in 1..N: s = stdin.readline & " " S.add(s) for i,s1 in S: for j,s2 in S: if i == j: continue for k in 0..min(s1.high,s2.high): if s1[k] != s2[k]: lcm[i][j] = k + 1 lcm[j][i] = k + 1 break for i in 0..<(1 shl N): #echo i, " ",countBits32(i.int32), " ",dp[i] var bc = countBits32(i.int32) ans[bc] = (ans[bc] + dp[i]) mod Mo for k in 0..<N: cnts[k] = 1 for k in 0..<N: if (i and (1 shl k)) == 0: for j in (k + 1)..<N: if (i and (1 shl j)) == 0: cnts[k] = max(cnts[k], lcm[k][j]) cnts[j] = max(cnts[j], lcm[k][j]) for k in 0..<N: if (i and (1 shl k)) == 0: dp[i + (1 shl k)] += (dp[i] + cnts[k] * P[bc]) mod Mo for i in 1..N: echo ans[i]