回文质数

陈子骏

2018-04-02 17:51:37

Personal

``` // 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; } ```