题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4726

题意:给出两个n位的数字,均无前缀0。重新排列两个数字中的各个数,重新排列后也无前缀0。得到的两个新数相加和最大。这里的相加是无进位的相加。输出结果。输出时不要输出前缀0。

思路:答案的第一位比较特殊,相加的两个数中不能有0.可以枚举这个答案中的第一个数字,查找是否存在两个数相加为这个数字。后面的道理一样,也是枚举。

int a[2][10];
int n;
char s[2][N];
int s1[N],s2[N],ans[N];

int main()
{
    int num=0;
    rush()
    {
        clr(a,0);
        int i,j,k;
        FOR0(i,2)
        {
            RD(s[i]);
            n=strlen(s[i]);
            FOR0(j,n) a[i][s[i][j]-'0']++;
        }
        int e=0,top=0,tail=0;
        for(i=9;i>=2;i--)
        {
            for(k=1,j=i-1;k<10;k++,j=(j+9)%10) if(j&&a[0][k]&&a[1][j])
            {
                ans[++e]=i;
                a[0][k]--;
                a[1][j]--;
                break;
            }
            if(k<10) break;
        }
        if(!e) ans[++e]=0,a[0][s[0][0]-'0']--,a[1][s[1][0]-'0']--;
        for(i=9;i>=0;i--)
        {
            k=i;
            for(j=0;j<10;j++)
            {
                while(a[0][j]&&a[1][k])
                {
                    ans[++e]=i;
                    a[0][j]--;
                    a[1][k]--;
                }
                k=(k+9)%10;
            }
        }
        printf("Case #%d: ",++num);
        for(i=1;i<n&&ans[i]==0;i++);
        for(j=i;j<n;j++)printf("%d",ans[j]);
        PR(ans[j]);
    }
}

  

HDU 4726 Kia's Calculation(贪心构造)的更多相关文章

  1. HDU 4726 Kia's Calculation(贪心)

    Kia's Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  2. HDU 4726 Kia's Calculation (贪心算法)

    Kia's Calculation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...

  3. ACM学习历程—HDU 4726 Kia's Calculation( 贪心&&计数排序)

    DescriptionDoctor Ghee is teaching Kia how to calculate the sum of two integers. But Kia is so carel ...

  4. hdu 4726 Kia's Calculation

    思路:刚开始想复杂了. 看解题报告后才知道这题挺简单的,看来还是要多训练啊!!! 单独处理首位的数字,不能为0.其他的就好处理了,从大到小依次找下去就可以了…… 代码如下: #include<i ...

  5. 贪心 HDOJ 4726 Kia's Calculation

    题目传送门 /* 这题交给队友做,做了一个多小时,全排列,RE数组越界,赛后发现读题读错了,囧! 贪心:先确定最高位的数字,然后用贪心的方法,越高位数字越大 注意:1. Both A and B wi ...

  6. K - Kia's Calculation (贪心)

    Kia's Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  7. HDU-4726 Kia's Calculation 贪心

    题目链接:http://acm.hdu.edu.cn/userstatus.php?user=zhsl 题意:给两个大数,他们之间的加法法则每位相加不进位.现在可以对两个大数的每位重新排序,但是首位不 ...

  8. hdu 4726(贪心)

    Kia's Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  9. K - Kia's Calculation(贪心)

    Kia's Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

随机推荐

  1. BZOJ1565 植物大战僵尸

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1565 这题看上去并不会做,结果又是最大权闭合子图的裸题. 于是就去看了一发论文,明白建图的 ...

  2. Guid和Int还有Double、Date的ToString方法的常见格式

    Guid的常见格式: 1.Guid.NewGuid().ToString("N") 结果为:       38bddf48f43c48588e0d78761eaa1ce6 2.Gu ...

  3. 寒假222_codeforces 290 div 2 D

    序号5: 想了很久的DP ,应该很简单,但是.. 题目直接转化为求n个数中选一些数GCD=1且花费最小 数比较大 map  HASH 还有一点 我们知道 GCD(X,X*Y)==X; 所以我的代码里不 ...

  4. STM32 对内部FLASH读写接口函数

    因为要用内部FLASH代替外部EEPROM,把参数放在STM32的0x08000000+320K处,其中20K是bootloader,300K是应用程序. 原理:先要把整页FLASH的内容搬到RAM中 ...

  5. 替代jquery

    如果不需要过多操作,不引用jquery 1.document.ready :$(function(){}) http://www.cnblogs.com/a546558309/p/3478344.ht ...

  6. Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起

    本文主要内容是讲解一个视图View或者一个ViewGroup对象是如何添加至应用程序窗口中的.下文中提到的窗口可泛指我们能看到的界面,包括一个Activity呈现的界面(我们可以将之理解为应用程序窗口 ...

  7. 几点基于Web日志的Webshell检测思路

    http://www.open-open.com/lib/view/open1456751673359.html

  8. PHP开发入行真功夫 三扬科技

    前言与目录 PHP开发入行真功夫 前言 PHP开发入行真功夫 目录   第2章 基本语法 2.1.1 判断闰年程序 2.1.2 我们现在能做的…… 2.2.1 PHP的语言概貌 2.2.2 为我们的程 ...

  9. Linux zip解压/压缩并指定目录

    方法如下: 压缩并指定目录举例:zip -r /home/kms/kms.zip /home/kms/server/kms 解压并指定目录 举例:unzip /home/kms/kms.zip -d ...

  10. 李洪强iOS开发之OC面向对象—多态

    OC面向对象—多态 一.基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态. 在使用多态是,会进行动态检测,以调用真实的对象方法. 多态在代码中的体现即父类指针指向子类对象. ...