栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 2961 Spinlock

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 2961 Spinlock

#include <cstdio>#include <algorithm>using namespace std;const int INF=~0u>>1;int minv[1000000];int from[1000000];int que[1000000];int ans[1000000];int a[100];int pow[7];int d,n,s,t,p,q,m;inline int calTo(int i,int j) {int ans=0,k;for (k=0;k<d;k++) {ans+=(i+j)%10*pow[k];i/=10;j/=10;}return ans;}inline int cal(int i,int j) {int ans=0,k;for (k=0;k<d;k++) {ans+=(j-i+2000000)%10*pow[k];i/=10;j/=10;}return ans;}inline void print(int x) {for (int k=d-1;k>=0;k--) {printf("%d",x/pow[k]%10);}printf("n");}int main() {int i,j,k;pow[0]=1;for (i=0;i<6;i++) pow[i+1]=pow[i]*10;while (scanf("%d%d",&d,&n)!=EOF) {for (i=0;i<n;i++) scanf("%d",&a[i]);sort(a,a+n);m=pow[d];scanf("%d%d",&s,&t);for (i=0;i<m;i++) minv[i]=INF;p=q=0;que[q++]=s;minv[s]=0;while (p!=q&&que[p]!=t) {i=que[p++];for (j=0;j<n;j++) {k=calTo(i,a[j]);if (minv[k]==INF) {minv[k]=minv[i]+1;from[k]=i;que[q++]=k;}}}if (minv[t]==INF) printf("-1n");else {p=0;q=t;while (q!=s) {ans[p++]=cal(from[q],q);q=from[q];}printf("%dn",p);while (p--) {print(ans[p]);}}}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371754.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号