A - Permutations CodeForces - 124B 解题报告

说出来这道题我为什么WA,你可能都不信,我把按位数乘的=写成了+=,我真的是佛了。。。假装这道题是自己不会全排列WA的,这里注意全排列的一个用法,数据很小也不用怕超时,还是比较好想。

题目:https://vjudge.net/problem/CodeForces-124B

AC代码:

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int maxn=2e5+10;
const int INF=0x3f3f3f3f;
int n,k;
char dig[10][10];
int bit[20];



int main()
{
    while(scanf("%d %d",&n,&k)==2)
    {
        for(int i=0;i<n;i++) scanf("%s",dig[i]);
        for(int i=0;i<k;i++) bit[i]=i;

        int ans=INF;
        do{
            int minn=INF,maxx=-1;
            for(int i=0;i<n;i++)
            {
                int sum=0;
                for(int j=0;j<k;j++)
                {
                    sum=sum*10+dig[i][bit[j]];
                }
                //cout<<"输出中间值    "<<sum<<endl;
                minn=min(minn,sum);
                maxx=max(maxx,sum);
            }
            ans=min(ans,maxx-minn);

        }while(next_permutation(bit,bit+k));
        printf("%d\n",ans);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/NCC__dapeng/article/details/82054782