HDU 4726 Kia's Calculation(数学+贪心)
来源:互联网 发布:表单令牌的作用 php 编辑:程序博客网 时间:2024/04/25 11:41
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4726
这个题目要注意第一个位置要特殊处理下,因为第一个不为0,之后的和求第一个的思路一样
贪心的从大到小找,也就是说尽量把组合大的数放到数的前面,这样才能保证最后的结果最大
这里的思路可能很常见,但是有些代码的写法还是值得注意的!
#include <iostream>#include <string.h>#include <algorithm>#include <stdio.h>using namespace std;#define MIN(a,b) (a<b?a:b)const int maxn=1e6+1;char a[maxn],b[maxn];int num1[10],num2[10];int n;int find_first(){ int i,j,k; for(i=9;i>=1;i--){//这里从1开始是为了防止首位是0 for(j=1;j<=9;j++){ if(i>j && num1[j] && num2[i-j]){ num1[j]--,num2[i-j]--;break; } if(10+i-j<=9 && num1[j] && num2[10+i-j]){ num1[j]--;num2[10+i-j]--;break; } } if(j<=9) break; } return i;}int find_ans(int n){ int ans=0,i,j,k; for(i=0;i<10;i++){ if(n-i>=0 && num1[i] && num2[n-i]){ k=MIN(num1[i],num2[n-i]); ans+=k; num1[i]-=k,num2[n-i]-=k; } if(10+n-i<10 && num1[i] && num2[10+n-i]){ k=MIN(num1[i],num2[10+n-i]); ans+=k; num1[i]-=k,num2[10+n-i]-=k; } } return ans;}int main(){ int i,j,k,t,cas=0; scanf("%d",&t); while(t--){ scanf("%s%s",a,b); n=strlen(a); memset(num1,0,sizeof(num1)); memset(num2,0,sizeof(num2)); for(i=0;i<n;i++){ num1[a[i]-'0']++; num2[b[i]-'0']++; } printf("Case #%d: ",++cas); k=find_first(); printf("%d",k); if(k==0){printf("\n");continue;} for(i=9;i>=0;i--){ k=find_ans(i); while(k--){ printf("%d",i); } } printf("\n"); } return 0;}
- HDU 4726 Kia's Calculation(数学+贪心)
- HDU 4726 Kia's Calculation (贪心)
- hdu 4726 Kia's Calculation(贪心)
- hdu 4726 Kia's Calculation (贪心)
- HDU 4726 Kia's Calculation (贪心算法)
- Kia's Calculation(贪心)
- HDU 4726 Kia's Calculation
- HDU 4726 Kia's Calculation
- hdu 4726 Kia's Calculation
- HDU 4726 Kia's Calculation
- HDU 4726 Kia's Calculation
- HDU 4726 Kia's Calculation
- HDU 4726 Kia's Calculation
- HDU 4726 Kia's Calculation
- HDU 4726 Kia's Calculation
- HDU 4726 Kia's Calculation
- hdu 4726 Kia's Calculation(贪心,好题)
- HDU 4726 Kia's Calculation 解题报告
- Python的浅拷贝和深拷贝
- 算法的优雅(十):本能に従顺忠実 翻弄も重々承知
- Unix/Linux C++应用开发-多进程应用开发
- java和js中遍历数组和对象的总结
- python在多玩图片上下载妹子图的实现代码
- HDU 4726 Kia's Calculation(数学+贪心)
- 线程同步 CriticalSection
- 10大最适合编程的字体推荐下载,让代码看起来更美更舒服!
- HTML基础
- C++逆向对于switch的学习
- android tabHost布局 大全
- 【Android病毒分析报告】 - ZxtdPay 吸费恶魔
- 嵌入式C开发基础题(3)
- 百度地图之搜索公交路线