Submission #50525410


Source Code Expand

import sys
readline = sys.stdin.buffer.readline
from math import gcd

n,m=map(int,readline().split())
w=[1] # w[i] = 2^i i!
for i in range(1,n+1):
    w.append(w[-1]*2*i)

def getvalue(): # 读取并转化成变进制
    a=list(map(int,readline().split()))
    return sum([w[i]*a[i] for i in range(n)])

c=getvalue() # 初始值

g=w[n]-1
for _ in range(m):
    g=gcd(g,getvalue())

if g<=(w[n]-1)//g: # g小, 建立0..g-1个点, 边(v+2^i i!)->v
    dist=[-1 for _ in range(g)] # dist[点] # 注意0的距离 不是0 且 >0
    q=[] # bfs 顺序
    def scan(v,d): # 从v出发, 新的距离为d
        for i in range(n):
            p = (v+w[i])%g
            if dist[p] == -1:
                dist[p] = d
                q.append(p)

    scan(0,1)
    head=0
    while head < len(q):
        v=q[head]
        head+=1
        scan(v,dist[v]+1)

    print(dist[c%g])
else: # g大, 枚举 d=c+kg
    ans=2*n*n
    for d in range((c-1)%g+1,w[n],g): # 不能全零
        ans=min(ans,sum([(d//w[i])%(2*(i+1)) for i in range(n)]))
    print(ans)

Submission Info

Submission Time
Task F - Die Siedler
User cromarmot
Language Python (PyPy 3.10-v7.3.12)
Score 900
Code Size 1091 Byte
Status AC
Exec Time 341 ms
Memory 163012 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 900 / 900
Status
AC × 3
AC × 72
Set Name Test Cases
Sample sample.txt, sample_2.txt, sample_3.txt
All 00max_12_1214827.txt, 00max_12_1615037.txt, 00max_12_70219.txt, 0max_12_1214827.txt, 0max_12_1615037.txt, 0max_12_70219.txt, any_2_1.txt, any_3_1.txt, any_4_1.txt, any_5_349.txt, any_6_781.txt, any_9_199.txt, any_9_49139.txt, case_10_1.txt, case_10_19.txt, case_10_757.txt, case_11_1993892839.txt, case_11_23.txt, case_11_41.txt, case_11_86690993.txt, case_12_1201463903.txt, case_12_1201463903_2.txt, case_12_1615037.txt, case_12_1983812491.txt, case_12_1983812491_2.txt, case_12_22747.txt, case_12_23.txt, case_12_23_2.txt, case_12_27633669769.txt, case_12_27941021.txt, case_12_27941021_2.txt, case_12_3053.txt, case_12_3708866831.txt, case_12_52237561.txt, case_12_529.txt, case_12_642643483.txt, case_12_70219.txt, case_12_71.txt, case_12_85303937113.txt, case_12_85303937113_2.txt, case_12_989.txt, case_12_989_2.txt, case_13_1.txt, case_14_6421.txt, case_15_1382253990020129.txt, case_15_16653662530363.txt, case_15_2573.txt, case_15_31.txt, case_15_83.txt, case_16_1.txt, case_16_1028654132108003.txt, case_16_1333.txt, case_16_31.txt, case_16_31888278095348093.txt, case_16_43.txt, case_16_44232127680644129.txt, case_8_1.txt, full_10_3715891199.txt, full_16_1371195958099967999.txt, full_2_7.txt, max_13_51011754393599.txt, max_16_1371195958099967999.txt, max_5_3839.txt, sample.txt, sample_2.txt, sample_3.txt, small_m_14_6421.txt, small_m_15_516263538441253.txt, zero_11_41.txt, zero_14_1.txt, zero_15_1382253990020129.txt, zero_16_1028654132108003.txt
Case Name Status Exec Time Memory
00max_12_1214827.txt AC 339 ms 162920 KiB
00max_12_1615037.txt AC 250 ms 82812 KiB
00max_12_70219.txt AC 76 ms 85740 KiB
0max_12_1214827.txt AC 341 ms 163012 KiB
0max_12_1615037.txt AC 265 ms 82496 KiB
0max_12_70219.txt AC 77 ms 85712 KiB
any_2_1.txt AC 57 ms 76576 KiB
any_3_1.txt AC 56 ms 76452 KiB
any_4_1.txt AC 56 ms 76440 KiB
any_5_349.txt AC 56 ms 76732 KiB
any_6_781.txt AC 56 ms 76432 KiB
any_9_199.txt AC 58 ms 80908 KiB
any_9_49139.txt AC 66 ms 81948 KiB
case_10_1.txt AC 56 ms 76332 KiB
case_10_19.txt AC 56 ms 76424 KiB
case_10_757.txt AC 61 ms 81000 KiB
case_11_1993892839.txt AC 57 ms 76636 KiB
case_11_23.txt AC 58 ms 76740 KiB
case_11_41.txt AC 57 ms 76508 KiB
case_11_86690993.txt AC 62 ms 80896 KiB
case_12_1201463903.txt AC 65 ms 82048 KiB
case_12_1201463903_2.txt AC 65 ms 81996 KiB
case_12_1615037.txt AC 249 ms 82840 KiB
case_12_1983812491.txt AC 62 ms 80980 KiB
case_12_1983812491_2.txt AC 63 ms 81032 KiB
case_12_22747.txt AC 66 ms 82800 KiB
case_12_23.txt AC 56 ms 76440 KiB
case_12_23_2.txt AC 57 ms 76576 KiB
case_12_27633669769.txt AC 57 ms 76628 KiB
case_12_27941021.txt AC 78 ms 82820 KiB
case_12_27941021_2.txt AC 78 ms 82932 KiB
case_12_3053.txt AC 63 ms 81956 KiB
case_12_3708866831.txt AC 61 ms 80784 KiB
case_12_52237561.txt AC 73 ms 82992 KiB
case_12_529.txt AC 59 ms 80632 KiB
case_12_642643483.txt AC 64 ms 81516 KiB
case_12_70219.txt AC 76 ms 85444 KiB
case_12_71.txt AC 56 ms 76400 KiB
case_12_85303937113.txt AC 56 ms 76792 KiB
case_12_85303937113_2.txt AC 57 ms 76628 KiB
case_12_989.txt AC 61 ms 81152 KiB
case_12_989_2.txt AC 61 ms 81160 KiB
case_13_1.txt AC 57 ms 76644 KiB
case_14_6421.txt AC 64 ms 81636 KiB
case_15_1382253990020129.txt AC 58 ms 80436 KiB
case_15_16653662530363.txt AC 65 ms 81836 KiB
case_15_2573.txt AC 64 ms 81864 KiB
case_15_31.txt AC 56 ms 76604 KiB
case_15_83.txt AC 59 ms 80940 KiB
case_16_1.txt AC 56 ms 76548 KiB
case_16_1028654132108003.txt AC 65 ms 82020 KiB
case_16_1333.txt AC 63 ms 81816 KiB
case_16_31.txt AC 56 ms 76404 KiB
case_16_31888278095348093.txt AC 57 ms 80188 KiB
case_16_43.txt AC 56 ms 76628 KiB
case_16_44232127680644129.txt AC 56 ms 76400 KiB
case_8_1.txt AC 56 ms 76712 KiB
full_10_3715891199.txt AC 55 ms 76692 KiB
full_16_1371195958099967999.txt AC 56 ms 76640 KiB
full_2_7.txt AC 56 ms 76676 KiB
max_13_51011754393599.txt AC 56 ms 76700 KiB
max_16_1371195958099967999.txt AC 56 ms 76408 KiB
max_5_3839.txt AC 56 ms 76588 KiB
sample.txt AC 56 ms 76444 KiB
sample_2.txt AC 55 ms 76576 KiB
sample_3.txt AC 253 ms 82900 KiB
small_m_14_6421.txt AC 64 ms 81492 KiB
small_m_15_516263538441253.txt AC 59 ms 80276 KiB
zero_11_41.txt AC 57 ms 76712 KiB
zero_14_1.txt AC 56 ms 76424 KiB
zero_15_1382253990020129.txt AC 56 ms 76472 KiB
zero_16_1028654132108003.txt AC 65 ms 81868 KiB