• 【扬中集训DAY2T2】 机智的AmyZhi


    【题目链接】

               点击打开链接

    【算法】

             据说标算是暴力? 从N-200开始搜 

             不过我用了搜索+一些奇怪的剪枝,也A了....

    【代码】

             标程

             

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    ll n,cases;
    bool check(ll x){
        ll tmp=x;
        for(int i=1;i<=20;i++){
            tmp+=x%10;
            x/=10;
        }
        if(tmp==n)return 1;
        return 0;
    }
    int main(){
            scanf("%I64d",&cases);
            int flag;
            while(cases--)
            {
                flag=0;
                scanf("%I64d",&n);
                for(ll i=max(1LL,n-200);i<=n;i++)
                    if(check(i)){
                        printf("%I64d
    ",i);
                        flag=1;
                        break;
                    }
                if (flag==0) puts("Stupid SiriusRen");
            }
        return 0;
    }

    我的程序

    #include<bits/stdc++.h>
    using namespace std;
    #define MAXL 17
    typedef long long LL;
    
    LL i,j,l,T,N,len,lth,sum;
    LL a[MAXL+10][MAXL+10],s[MAXL+10][MAXL+10],f[MAXL+10],ans[MAXL+10];
    vector<LL> vec,res;
    bool solved;
    
    template <typename T> inline void read(T &x) {
        int f = 1; x = 0;
        char c = getchar();
        for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
        for (; isdigit(c); c = getchar()) x = (x << 3) + (x << 1) + c - '0';
    }
    
    template <typename T> inline void write(T x) {
        if (x < 0) { putchar('-'); x = -x; }
        if (x > 9) write(x/10);
        putchar(x%10+'0');
    }
    
    template <typename T> inline void writeln(T x) {
        write(x);
        puts("");
    }
    
    inline void save_answer() {
        int i;
        for (i = 1; i <= len; i++) res.push_back(ans[i]);    
    } 
    
    inline void dfs(int dep) {
        int i,l,r;
        if (solved) return;
        if (sum > N) return;
        if (sum + 9 * (s[len][len] - s[len][dep-1]) < N) return;
        if (dep > len) {
            if (sum == N) {
                solved = true;
                save_answer();
            }
        } else {
            l = 0; r = 9;
            if (dep == 1) l = 1;
            for (i = l; i <= r; i++) {
                if (solved) break;
                if (sum + a[len][dep] * i <= N) {
                    sum += a[len][dep] * i;
                    ans[++lth] = i;
                    dfs(dep+1);
                    sum -= a[len][dep] * i;
                    --lth;
                }
            }
        }    
    }
    
    void print() {
        int i;
        for (i = 0; i < res.size(); i++) write(res[i]);
        cout<<endl;
    }
    
    int main() {
        
        freopen("amy.in","r",stdin);
        freopen("amy.out","w",stdout);
        
        f[0] = 1;
        for (i = 1; i <= MAXL; i++) f[i] = (f[i-1] << 3) + (f[i-1] << 1); 
        for (i = 1; i <= MAXL; i++) {
            a[i][i] = 2;
            for (j = i - 1; j >= 1; j--) {
                a[i][j] = f[i-j] + 1; 
            }    
        } 
        for (i = 1; i <= MAXL; i++) {
            for (j = 1; j <= MAXL; j++) {
                s[i][j] = s[i][j-1] + a[i][j];
            }
        }
        read(T);
        while (T--) {
            vec.clear(); res.clear();
            solved = false;
            read(N);
            for (l = 1; l <= MAXL; l++)    {
                if (s[l][l] * 9 < N) continue;
                if (a[l][1] > N) break;
                vec.push_back(l);
            }
            for (i = 0; i < vec.size(); i++) {
                lth = sum = 0; len = vec[i];
                dfs(1);
                if (solved) break;
            }
            if (solved) print();
            else puts("Stupid SiriusRen");
        }
        
        return 0;
    
    }


  • 相关阅读:
    thinkphp引入phpmailer发送邮件
    让火狐的DIV被内容自动撑开
    mysql 日期操作 增减天数、时间转换、时间戳
    [MySQL] 几句MySQL时间筛选SQL语句[进入查看]
    公钥和私钥
    SSI整合搭建Struts2+Spring+Ibatis框架
    目前 NORTON SEP 及各类产品 离线升级包下载及升级方法
    Spring 3.1.1 + Struts 2.3.1.2 + Hibernate 4.1 整合(SSH)
    IIS与asp.net3.5的问题
    SSI框架整合
  • 原文地址:https://www.cnblogs.com/evenbao/p/9196432.html
Copyright © 2020-2023  润新知