博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 5718(Oracle)大数加法
阅读量:5881 次
发布时间:2019-06-19

本文共 1997 字,大约阅读时间需要 6 分钟。

曾经有一位国王,统治着一片未名之地。他膝下有三个女儿。三个女儿中最年轻漂亮的当属Psyche。她的父亲不确定她未来的命运,于是他来到Delphi神庙求神谕。神谕可以看作一个不含前导零的正整数n n n。为了得到真正的预言,他可以将n n n的各个数位重新排列,并将其分成两个不含前导零的正整数。请你帮助他求出这两个正整数最大的和。如果不存在这样的两个正整数,输出"Uncertain".

用getchar可以一个数字一个地读入,
对于一个十进制数,最多就是10个数字,使用计数可以很方便地进行排序,再用dfs
每十位十位地进行大数相加
写dfs的时候需要注意,把保存状态的临时数组定义在dfs里面

#include 
#include
#include
#include
#include
#define SET(x) memset(x,0,sizeof(x))using namespace std;int vis[10];void cacu(int x,int len){ if(x==0&&len==0) return; if(x!=0&&len==0) {printf("%d",x);return;} if(x==0&&len!=0) { while(len) for(int i=9;i>=0;i--) { if(!vis[i]) continue; vis[i]--; printf("%d",i); len--; break; } return; } int g,f,w=0,t; g=x; t=min(10,len); int num1[11]; while(t--) { for(int i=0;i<10;i++) { if(!vis[i]) continue; vis[i]--; f=i+g; if(f>9) g=1; else g=0; num1[w++]=f%10; len--; break; } } cacu(g,len); for(int i=max(w-1,0); i>=0; i--) printf("%d",num1[i]);}int main(){ int T; scanf("%d",&T); getchar(); for(; T; T--) { char x; memset(vis,0,sizeof(vis)); int len=0; while((x=getchar())&&x!='\n') { vis[x-'0']++; len++; } if(len<=1) { puts("Uncertain"); continue; } int flag=0,minx=10; for(int i=1; i<=9; i++) { if(vis[i]==1) flag++; else if(vis[i]>1) flag=2; if(vis[i]) minx=min(minx,i); } if(flag<2) { puts("Uncertain"); continue; } vis[minx]--; cacu(minx,len-1); puts(""); } return 0;}
View Code

 

转载于:https://www.cnblogs.com/zsyacm666666/p/6114940.html

你可能感兴趣的文章
Akka actor tell, ask 函数的实现
查看>>
Netty 4.1.35.Final 发布,经典开源 Java 网络服务框架
查看>>
js判断checkbox是否选中
查看>>
Eclipse中修改代码格式
查看>>
GRUB Legacy
查看>>
关于 error: LINK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案...
查看>>
Linux 进程中 Stop, Park, Freeze【转】
查看>>
文件缓存
查看>>
PHP盛宴——经常使用函数集锦
查看>>
重写 Ext.form.field 扩展功能
查看>>
Linux下的搜索查找命令的详解(locate)
查看>>
福利丨所有AI安全的讲座里,这可能是最实用的一场
查看>>
开发完第一版前端性能监控系统后的总结(无代码)
查看>>
Python多版本情况下四种快速进入交互式命令行的操作技巧
查看>>
MySQL查询优化
查看>>
【Redis源码分析】如何在Redis中查找大key
查看>>
android app启动过程(转)
查看>>
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
Applet
查看>>