arc159a
题目链接:https://atcoder.jp/contests/arc159/tasks/arc159_a
打个表可以发现,每一个复制块的的最短路都相等。
思路:对询问的两个值进行取模运算,再到原最短路上进行查询即可。
代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
int dist[N][N];
void solve(){
int n,m;
cin>>n>>m;
memset(dist,0x3f,sizeof(dist));
for (int i=1;i<=n;i++){
for (int j=1;j<=n;j++){
int x;
cin>>x;
if (x) dist[i][j] = 1;
}
}
for (int k=1;k<=n;k++){
for (int i=1;i<=n;i++){
for (int j=1;j<=n;j++){
dist[i][j] = min(dist[i][j],dist[i][k]+dist[k][j]);
}
}
}
int q;
cin>>q;
for (int i=1;i<=q;i++){
long long x,y;
cin>>x>>y;
x = (x%n==0)?n:x%n;
y = (y%n==0)?n:y%n;
if (dist[x][y]==0x3f3f3f3f) cout<<-1<<'\n';
else cout<<dist[x][y]<<'\n';
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int T;
T = 1;
//cin>>T;
while(T--) solve();
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)