uva 1583 Digit Generator

来源:互联网 发布:酷狗音乐mac版 编辑:程序博客网 时间:2024/06/08 12:36

点击打开链接

输入一个数,输出其最小生成元。刚开始看时一脸懵逼,想要对于给定的每一个数倒着找,但是那样没法写。

字数上用的打表,最终查表直接输出即可,一定要学会这种方法,有时能够很有效的避免TLE并且很简洁。

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#define maxn 100001int main(){   int a[maxn],k,t;   memset(a,0,sizeof(a));   for(int i = 1;i < maxn;i++)//最好的方法:一次性枚举,最后查表即可;   {       int m = i,n = i;       while(n)       {           m += n%10;           n /= 10;       }       if(a[m] == 0 || i < a[m])            a[m] = i;//a[m] != m 别搞反;   }    scanf("%d",&t);    while(t--)    {        scanf("%d",&k);        printf("%d\n",a[k]);    }    return 0;}


0 0
原创粉丝点击