博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Permute Digits
阅读量:2037 次
发布时间:2019-04-28

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

题解:乱搞???

反正先按相同排,不行的话倒回去

goto大法好

/**@Author:   STZG*@Language: C++*/#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#define DEBUG#define RI register intusing namespace std;typedef long long ll;//typedef __int128 lll;const int N=10000;const int MOD=1e9+7;const double PI = acos(-1.0);const double EXP = 1E-8;const int INF = 0x3f3f3f3f;int t,n,m,k,q;int an[11];int bn[22];int main(){#ifdef DEBUG freopen("input.in", "r", stdin); //freopen("output.out", "w", stdout);#endif ll a,b; scanf("%I64d%I64d",&a,&b); int cnt=0; while(a!=0){ an[a%10]++; a/=10; cnt++; } int cntb=0; while(b!=0){ bn[++cntb]=b%10; b/=10; } ll ans=0; if(cnt
=1;j--){ for(int k=9;k>=0;k--){ if(an[k]>0){ ans=ans*10+k; an[k]--; break; } } } cout << ans << endl; return 0; } for(int i=cnt;i>=1;i--){ if(an[bn[i]]>0){ ans=ans*10+bn[i]; an[bn[i]]--; }else{ int start=i; int flag=0;g: for(int k=bn[start]-1;k>=0;k--){ if(an[k]>0){ ans=ans*10+k; flag=1; an[k]--; break; } } if(!flag){ an[ans%10]++; ans/=10; start++; goto g; } for(int j=start-1;j>=1;j--){ for(int k=9;k>=0;k--){ if(an[k]>0){ ans=ans*10+k; an[k]--; break; } } } break; } } cout << ans << endl; //cout << "Hello world!" << endl; return 0;}

 

转载地址:http://wfzof.baihongyu.com/

你可能感兴趣的文章
MySQL和Postgresql的区别
查看>>
开源RPC(gRPC/Thrift)框架性能评测
查看>>
《hadoop学习》关于hdfs中的namenode和datanode详解
查看>>
FastDFS的一些总结
查看>>
HBase底层存储原理
查看>>
linux python 2.6安装 paramiko
查看>>
Python2.x中文乱码问题解决
查看>>
Undertow,Tomcat和Jetty服务器配置详解与性能测试
查看>>
jVM虚拟机调优指南
查看>>
MongoDB十分钟搞定CRUD
查看>>
异常处理@ExceptionHandler遇到的问题
查看>>
Storm框架基础(一)
查看>>
linux查看文件某个关键字
查看>>
Hive 快速入门(全面)
查看>>
Spring Cloud Gateway基于服务发现的默认路由规则
查看>>
Apache Flink 1.6.0 正式发布,涵盖多项重要更新
查看>>
SpringBoot集成自定义HandlerMethodArgumentResolver
查看>>
修改linux最大文件句柄数
查看>>
RocketMQ 自定义(日志)文件路径
查看>>
Guava学习笔记:Immutable(不可变)集合
查看>>