zoukankan      html  css  js  c++  java
  • 洛谷1602 Sramoc问题

     
    刚看到这道题的时候感觉像spfa。
    然后发现其实bfs就可以做了。
    //Serene
    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<cstdlib>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    const int maxn=1000+10;
    int k,m,from[maxn],d[maxn];
    
    int zz[maxn];
    bool vis[maxn];
    void bfs() {
    	int s=1,t=0,x,y;
    	for(int i=1;i<=k&&!vis[0];++i) if(!vis[i%m]){
    		d[i%m]=i%m,zz[++t]=i%m,vis[i%m]=1;
    	}
    	while(s<=t&&!vis[0]) {
    		x=zz[s++];y=x*10%m;
    		for(int i=0;i<=k&&!vis[0];++i) {
    			y=(x*10%m+i)%m;
    			if(vis[y]) continue;
    			vis[y]=1;
    			from[y]=x;
    			d[y]=i;
    			zz[++t]=y;
    		}
    	}
    	t=0;zz[++t]=d[0];
    	for(int i=from[0];i;i=from[i]) zz[++t]=d[i];
    	while(t) printf("%d",zz[t--]); 
    }
    
    int main() {
    	scanf("%d%d",&k,&m);k--;
    	bfs();
    	return 0;
    }
    

      

    弱者就是会被欺负呀
  • 相关阅读:
    骑行封龙山
    静夜
    骑行伏羲台
    我?
    生活挺好
    多事之秋,大家注意安全
    看不到啊看不到
    个人时间管理
    给DataGrid设置中文列名
    食用油是那么让人又爱又恨!
  • 原文地址:https://www.cnblogs.com/Serene-shixinyi/p/7630578.html
Copyright © 2011-2022 走看看