hdu 4726(贪心)
Kia's Calculation
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3291 Accepted Submission(s): 703
Ghee is teaching Kia how to calculate the sum of two integers. But Kia
is so careless and alway forget to carry a number when the sum of two
digits exceeds 9. For example, when she calculates 4567+5789, she will
get 9246, and for 1234+9876, she will get 0. Ghee is angry about this,
and makes a hard problem for her to solve:
Now Kia has two integers A
and B, she can shuffle the digits in each number as she like, but
leading zeros are not allowed. That is to say, for A = 11024, she can
rearrange the number as 10124, or 41102, or many other, but 02411 is not
allowed.
After she shuffles A and B, she will add them together, in her own way. And what will be the maximum possible sum of A "+" B ?
For each test case there are two lines. First line has the number A, and the second line has the number B.
Both A and B will have same number of digits, which is no larger than 106, and without leading zeros.
5958
3036
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#define LL long long
using namespace std;
const int N = ;
char str1[N],str2[N];
int num1[],num2[];
int res[N];
int main()
{
int tcase,t = ;
scanf("%d",&tcase);
while(tcase--)
{ scanf("%s%s",str1,str2);
if(strcmp(str1,"")==){
printf("Case #%d: ",t++);
printf("%s\n",str2);
continue;
}
if(strcmp(str2,"")==){
printf("Case #%d: ",t++);
printf("%s\n",str1);
continue;
}
int len = strlen(str1);
memset(num1,,sizeof(num1));
memset(num2,,sizeof(num2));
for(int i=; i<len; i++)
{
num1[str1[i]-'']++;
num2[str2[i]-'']++;
}
int high = -,x,y;
for(int i=; i<=; i++)
{
for(int j=; j<=; j++)
{
if(num1[i]&&num2[j]&&high<(i+j)%)
{
x = i;
y = j;
high = (i+j)%;
}
}
}
num1[x]--;
num2[y]--;
int cnt = ,zero = ;
res[cnt++] = high;
if(high==) zero++;
printf("Case #%d: ",t++);
if(zero){
printf("0\n");
continue;
}
for(int l=; l<len; l++)
{
/*
TLE
for(int i=0; i<=9; i++)
{
for(int j=0; j<=9; j++)
{
if(num1[i]&&num2[j]&&MAX<(i+j)%10)
{
x = i;
y = j;
MAX = (i+j)%10;
}
}
}*/
bool flag = true;
for(int i=;i>=&&flag;i--){
for(int j=;j<=&&flag;j++){
if(i-j<&&num1[j]&&num2[i-j+]){
num1[j]--;
num2[i-j+]--;
res[cnt++] = i;
flag = false;
}else if(i-j>=&&num1[j]&&num2[i-j]){
num1[j]--;
num2[i-j]--;
res[cnt++] = i;
flag = false;
}
}
} }
for(int i=;i<cnt;i++){
printf("%d",res[i]);
}
printf("\n");
}
return ;
}
hdu 4726(贪心)的更多相关文章
- HDU 4726 Kia's Calculation(贪心构造)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4726 题意:给出两个n位的数字,均无前缀0.重新排列两个数字中的各个数,重新排列后也无前缀0.得到的两 ...
- HDU 4726 Kia's Calculation (贪心算法)
Kia's Calculation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- HDU 4726 Kia's Calculation(贪心)
Kia's Calculation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- ACM学习历程—HDU 4726 Kia's Calculation( 贪心&&计数排序)
DescriptionDoctor Ghee is teaching Kia how to calculate the sum of two integers. But Kia is so carel ...
- Hdu 5289-Assignment 贪心,ST表
题目: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Assignment Time Limit: 4000/2000 MS (Java/Others) ...
- hdu 4803 贪心/思维题
http://acm.hdu.edu.cn/showproblem.php?pid=4803 话说C++还卡精度么? G++ AC C++ WA 我自己的贪心策略错了 -- 就是尽量下键,然后上 ...
- hdu 1735(贪心) 统计字数
戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735 对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实 这是道贪心的题目,要有贪心的意 ...
- hdu 4974 贪心
http://acm.hdu.edu.cn/showproblem.php?pid=4974 n个人进行选秀,有一个人做裁判,每次有两人进行对决,裁判可以选择为两人打分,可以同时加上1分,或者单独为一 ...
- hdu 4982 贪心构造序列
http://acm.hdu.edu.cn/showproblem.php?pid=4982 给定n和k,求一个包含k个不相同正整数的集合,要求元素之和为n,并且其中k-1的元素的和为完全平方数 枚举 ...
随机推荐
- HSTS的来龙去脉
前言 安全经常说“云.管.端”,“管”指的是管道,传输过程中的安全.为了确保信息在网络传输层的安全,现在很多网站都开启了HTTPS,也就是HTTP+TLS,在传输过程中对信息进行加密.HTTPS使用了 ...
- 第13章 MySQL服务器的状态--高性能MySQL学习笔记
13.1 系统变量 -- 服务器配置变量 MySQL通过SHOW VARIABLES SQL命令显示许多系统变量. 13.2 状态变量--SHOW STATUS SHOW STATUS 命令会在一个 ...
- MATLAB2010安装方法
MATLAB2010安装方法 第一步选择无网络安装. 选择yes,然后点击next 激活序列号在crack文件夹中的txt文档中 这一步按照图片上的显示操作就可以 选择经典安装 按提示操作,这一步事激 ...
- poj 1655 树的重心
Balancing Act Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13178 Accepted: 5565 De ...
- poj1850 Code
Code Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10059 Accepted: 4816 Description ...
- jdk的keystore生成
使用jdk路径下的keytool.exe生成 生成证书: 导出证书,此时输入生成证书时设置的密码:
- OpenCV---人脸检测
一:相关依赖文件下载 https://github.com/opencv/opencv 二:实现步骤(图片检测) (一)读取图片 image= cv.imread("./d.png&qu ...
- div 当高度较小时指定高度,当高度较大时自适应
在该元素或标签的样式中加入:{min-height:500px;height:auto;},其中min-height:是最小高度,auto是自适应内容.
- 说一说ASP.NET web.config 加密及解密方法 (代码)
/// <summary> /// 保护web.config的加密和解密 /// </summary> public class ProtectHelper { /// < ...
- 【CodeForces】915 D. Almost Acyclic Graph 拓扑排序找环
[题目]D. Almost Acyclic Graph [题意]给定n个点的有向图(无重边),问能否删除一条边使得全图无环.n<=500,m<=10^5. [算法]拓扑排序 [题解]找到一 ...