Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
挺顺利的#include<iostream> #include<stdio.h> #include<string.h> #include<cstring> #include<algorithm> #include<stack> #define ll long long #define N 200000 #include<math.h> #include<queue> using namespace std; bool biaoji[10000]; bool p[10500]; struct node{ int v; int step; }; node start; queue<node>que; int goal; int cifang(int n){ int ans=1; for(int i=0;i<n;i++){ ans*=10; } return ans; } int gaibian(int x,int k,int j){ int jianshu=(x/cifang(k))%10*cifang(k); return x-jianshu+j*cifang(k); } int main(){ freopen("input2.txt","r",stdin); for(int i=1;i<=9999;i++){ p[i]=1; } p[1]=0; for(int i=2;i<9999/2;i++){ for(int j=2;j<=9999/i;j++){ p[j*i]=0; } } int t; cin>>t; for(int i=0;i<t;i++){ memset(biaoji,0,sizeof(biaoji)); int l; scanf("%d%d",&start.v,&goal); while(!que.empty())que.pop(); start.step=0; biaoji[start.v]=1; que.push(start); while(!que.empty()){ node now=que.front(); que.pop(); if(now.v==goal){ cout<<now.step<<endl; break; } biaoji[now.v]=1; for(int k=0;k<4;k++) { for(int j=0;j<=9;j++){ if(k==3&&j==0)continue; int xiayige=gaibian(now.v,k,j); if(p[xiayige]&&!biaoji[xiayige]){ node next; next.v=xiayige; next.step=now.step+1; que.push(next); } } } } } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator