回文质数
陈子骏
2018-04-02 17:51:37
```
// luogu-judger-enable-o2
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int dis[101],viss[101];
int n,m;
int map[101][101],mapp[101][101];
int main()
{
memset(mapp,0x7f,sizeof(map));
memset(viss,0,sizeof(viss));
cin>>n>>m;
for(int i=1;i<=n;i++)
mapp[i][i]=0;
for(int i=1;i<=m;i++)
{
int x,y,z;
cin>>x>>y>>z;
map[x][y]=map[y][x]=z;
}
int d;
cin>>d;
for(int i=1;i<=d;i++)
{
int x,y;
cin>>x>>y;
mapp[x][y]=map[x][y];
mapp[y][x]=map[y][x];
}
int q,w;
cin>>q>>w;
for(int i=1;i<=n;i++)
dis[i]=mapp[q][i];
dis[q]=0;
for(int i=1;i<=n;i++)
{
int k=0,mann=999999;
for(int j=1;j<=n;j++)
{
if(dis[j]<mann&&viss[j]==0)
{
mann=dis[j];
k=j;
}
}
if(k==0) break;
viss[k]=1;
for(int j=1;j<=n;j++)
{
dis[j]=min(dis[j],dis[k]+mapp[k][j]);
}
}
cout<<dis[w];
return 0;
}
```