竞赛讨论区 > 周赛c题为什么dfs答案不一样
头像
22219119302高悦
发布于 03-18 13:11
+ 关注

周赛c题为什么dfs答案不一样

#include<bits/stdc++.h>

using namespace std;

typedef long long LL;

vector<int> a,b;

string str;

 LL x = 0;

bool mp[10] = {false};

LL N = 1e4;

vector<int> c;

bool flag = false;

void dfs(int x,vector<int> b)
{
    if(x % 495 == 0)
    {
            if(b.size()<6){
            c = b;
            flag = true;
            return;
        }
    }
    
    if(b.size()>=6) return ;
    
    for(int i = 0;i<=9;i++)
    {
        b.push_back(i);
        dfs(x*10+i,b);
        b.pop_back();
     //if(flag == true) break;
    }
}

int main()
{
    cin>>str;
    
    for(int i = str.size()-1;i>=0;i--) a.push_back(str[i] - '0');
    
    int beishu = 1;
    for(int i = 0;i<str.size();i++) 
    {
        x += a[i]*beishu;
        beishu *=10;
    }
    //cout<<x;
    if(x % 495 ==0) cout<<"-1";
    
    else 
    {
       dfs(x,b);
        
        for(int i = 0;i<c.size();i++)
        {
            cout<<c[i];
        }
        
    }
}

全部评论

(0) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐