题面 传送门 分析 考虑BFS while(棋盘没有满){ for 玩家 p{ 对p进行BFS,走s[p]步 } } 对于每个玩家p BFS的时候如果到了格子(x,y),就把\(vis[x][y]\)标记为p 最后把vis扫一遍就统计出了每个玩家占领的个数 每次BFS时要把最外层的节点存下来,下一次BFS时直接从那些节点开始搜索 具体实现中对每个玩家维护两个队列q1,q2,队列中的每个元素(x,y,t)表示当前时间为t,位置(x,y) 初始化时向q2插入起点 function expand(p)…