文章

246

粉丝

0

获赞

1171

访问

55.7k

头像
求30的倍数 题解:
P1736 华东师范大学2020年机试题
发布于2026年3月9日 15:52
阅读数 197

直接爆搜

#include<iostream>
using namespace std;

const int N=1e5+10;

int res=-1;
int num[N];
bool path[N];

string str;

int get_num()
{
    int sum=0;
    for(int i=0;i<str.size();i++)
    sum=sum*10+num[i];
    return sum;
}

void dfs(int u)
{
    if(u==str.size())
    {
        int x=get_num();
        if(x%30==0)
        res=max(res,x);
        return;
    }
    for(int i=0;i<str.size();i++)
    {
        if(!path[i])
        {
            path[i]=true;
            num[u]=str[i]-'0';
            dfs(u+1);
            path[i]=false;
        }
    }
}

int main()
{
    cin>>str;
    dfs(0);
    cout<<res;
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发