zoukankan      html  css  js  c++  java
  • POJ 2718 (Smallest Different)

    题目链接:http://poj.org/problem?id=2718

    题意:

    将所给出的所有数字排列组合生成两个数,使其差的绝对值最小。求最小值。

    这是一道穷竭搜索类型的题目,难度不大,还学到了 next_permutation 函数,

    写好了一个代码后提交却是TLE!太搞人心态了,修改后有时报错,不得不说小白太辣鸡。。

    这道题的坑就在于对输入数字为1和2特殊情况的单独列取

    ac代码:

    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    
    int n,ids;
    int s[15];
    char c;
    
    using namespace std;
    
    int make_num(int i,int j){
        int x=0;
        for(int k=i;k<j;k++){
            x*=10;
            x+=s[k];
        }
        return x;
    }
    
    void solve(){
        int ans=0x3f3f3f3f;
        int k=ids/2;
    
        do{
            if(s[0]==0||s[k]==0)    continue;
    
            int x=make_num(0,k);
            int y=make_num(k,ids);
            ans=min(ans,abs(x-y));
        }while(next_permutation(s,s+ids));
        printf("%d
    ",ans);
    }
    
    // using namespace std;
    int main(void){
        
        scanf("%d
    ",&n);
        while(n--){
            ids=0;
            while((c=getchar())!='
    '){
                if(c!=' ')    s[ids++]=c-'0';
            }
            if(ids==1)
                cout<<s[0]<<endl;
            else if(ids==2)
                cout<<abs(s[0]-s[1])<<endl;
            else{solve();}        
        }
        // printf("%d
    ",ids);
        return 0;
    }
    View Code

    2020-03-22

    18:34:00

  • 相关阅读:
    买点
    正则
    burp回放
    py打包问题
    运行elementUI相关组件的时候的问题
    客户端性能(转载)
    客户端性能(转载)
    关于Appium android input manager for Unicode 提示信息
    selenium 分布式 [WinError 10061] 由于目标计算机积极拒绝
    WPF数据绑定-依赖属性
  • 原文地址:https://www.cnblogs.com/jaszzz/p/12547565.html
Copyright © 2011-2022 走看看