結果
問題 | No.1340 おーじ君をさがせ |
ユーザー |
👑 |
提出日時 | 2021-07-22 10:53:58 |
言語 | Lua (LuaJit 2.1.1734355927) |
結果 |
AC
|
実行時間 | 209 ms / 2,000 ms |
コード長 | 1,216 bytes |
コンパイル時間 | 34 ms |
コンパイル使用メモリ | 6,688 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-17 14:37:17 |
合計ジャッジ時間 | 4,802 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 59 |
ソースコード
local bor, band = bit.bor, bit.bandlocal ffi = require("ffi")local C = ffi.Cffi.cdef[[long long atoll(const char*);]]local function lltonumber(str)return C.atoll(str)endlocal n, m, t = io.read():match("(%d+) (%d+) (%d+)")n = tonumber(n)m = tonumber(m)t = lltonumber(t)local mat = {}for i = 1, n domat[i] = {}for j = 1, n domat[i][j] = 0endendfor i = 1, m dolocal a, b = io.read("*n", "*n")mat[b + 1][a + 1] = 1endlocal vec = {}for i = 1, n dovec[i] = 0endvec[1] = 1local tmpmat = {}for i = 1, n dotmpmat[i] = {}endlocal tmpvec = {}local function matmat()for i = 1, n dofor j = 1, n dolocal v = 0for k = 1, n dov = bor(v, band(mat[i][k], mat[k][j]))endtmpmat[i][j] = vendendfor i = 1, n do for j = 1, n domat[i][j] = tmpmat[i][j]end endendlocal function matvec()for i = 1, n dolocal v = 0for k = 1, n dov = bor(v, band(mat[i][k], vec[k]))endtmpvec[i] = vendfor i = 1, n dovec[i] = tmpvec[i]endendwhile 0LL < t doif t % 2LL == 1LL thenmatvec()endmatmat()t = t / 2LLendlocal z = 0for i = 1, n doz = z + vec[i]endprint(z)