60pts (#4#5 TLE)求助
查看原帖
60pts (#4#5 TLE)求助
1165197
Eastern_Leaf楼主2024/8/6 17:49
#include<bits/stdc++.h>
using namespace std;
int n,ans = 0;
int arr[4]={0},sta[10] = {6,2,5,5,4,5,6,3,7,6};
int cs(int x){
    int s = 0;
    if(x< 10) return sta[x];
    while(x != 0){
        s += sta[x%10];
        x /= 10;
    }
    return s;
}
void dfs(int x,int sum){
    if(sum > n){
        return;
    }
    if(x  == 4){
        if(arr[1]+arr[2]==arr[3]&&sum == n){
            ans++;
        }
        return ;
    }
    for(int i = 0;i<=10000;i++){
        arr[x] = i;
        dfs(x+1,sum + cs(i));
        arr[x] = 0;
    }
}
int main(){
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n;
    n -= 4;
    dfs(1,0);
    cout<<ans;
    return 0;
}
2024/8/6 17:49
加载中...