求大佬解答
查看原帖
求大佬解答
916086
yaoshuen楼主2023/10/3 23:57

请问为啥没有优化就过了?

当时想看看没优化的代码多少分结果就AC了

很大的问号

#include <bits/stdc++.h>
using namespace std;
string st;
int n,len,t;
bool p[50];
int ans=100;
bool check(){
    int tot=0,sum=0;
    for(int i=0;i<len;i++){
        if(p[i]){
            t++;
            sum+=tot;
            tot=st[i]-48;
        }else{
            tot=tot*10+st[i]-48;
        }
    }
    return (sum+tot==n);
}
void dfs(int dep){
    if(dep>=len){
        t=0;
        if(check()){
            ans=min(ans,t);
        }
        return;
    }
    p[dep]=1;
    dfs(dep+1);
    p[dep]=0;
    dfs(dep+1);
}
int main(){
    cin>>st>>n;
    len=st.size();
    dfs(1);
    printf("%d\n",(ans==100?-1:ans));
    return 0;
}
2023/10/3 23:57
加载中...