zoukankan      html  css  js  c++  java
  • [CF1070A]Find a Number_bfs

    Find a Number

    题目链接http://codeforces.com/problemset/problem/1070/A

    数据范围:略。


    题解

    因为$d$和$s$比较小可以搜。

    这就很$gay$了...我根本没想到可以宽搜。

    想到搜索就非常简单了,从小到大枚举就好了。

    代码

    #include <bits/stdc++.h>
    
    #define inf 0x3f3f3f3f 
    
    #define D 510 
    
    #define S 5010 
    
    using namespace std;
    
    int d, s;
    
    bool vis[D][S];
    
    queue <pair<int, int> >q;
    
    pair<pair<int, int>, int> p[D][S];
    
    void bfs() {
        vis[0][0] = true;
        q.push(make_pair(0, 0));
        while (!q.empty()) {
            int x = q.front().first, y = q.front().second;
            q.pop();
            for (int i = 0; i < 10; i ++ ) {
                int x_ = (x * 10 + i) % d, y_ = y + i;
                if (y_ <= s && !vis[x_][y_]) {
                    vis[x_][y_] = true;
                    p[x_][y_] = make_pair(make_pair(x, y), i);
                    q.push(make_pair(x_, y_));
                }
            }
        }
    }
    
    void output(int x, int y) {
        if (!x && !y) {
            return;
        }
        output(p[x][y].first.first, p[x][y].first.second);
        putchar('0' + p[x][y].second);
    }
    
    int main() {
        cin >> d >> s ;
        bfs();
        if (!vis[0][s]) {
            puts("-1");
        }
        else {
            output(0, s);
        }
        return 0;
    }
    
  • 相关阅读:
    java的概述 常量 变量
    css 基础2
    css 盒子模型1
    css 基础1
    HTML 基础 3
    HTML基础2
    servletContext百科
    hibernate 一对多双向关联 详解
    hibernate generator class="" id详解
    Hibernate缓存原理与策略
  • 原文地址:https://www.cnblogs.com/ShuraK/p/11754221.html
Copyright © 2011-2022 走看看