给N个数字(0-9),让你组成一个数。

要求:1.这个数是奇数    2.这个数没有前导0

问这个数最大是多少。

思路&解法:

N个数字从大到小排序,将最小的奇数与最后一位交换,把剩下前N-1位从大到小排序。输出。(判断第一位是否为0)

代码:

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <string.h>
  4. #include <cstdlib>
  5. #include <algorithm>
  6. #include <queue>
  7. #include <vector>
  8. #include <cmath>
  9. #include <map>
  10. #include <stack>
  11. using namespace std;
  12. int const uu[4] = {1,-1,0,0};
  13. int const vv[4] = {0,0,1,-1};
  14. typedef long long ll;
  15. int const maxn = 50005;
  16. int const inf = 0x3f3f3f3f;
  17. ll const INF = 0x7fffffffffffffffll;
  18. double eps = 1e-10;
  19. double pi = acos(-1.0);
  20. #define rep(i,s,n) for(int i=(s);i<=(n);++i)
  21. #define rep2(i,s,n) for(int i=(s);i>=(n);--i)
  22. #define mem(v,n) memset(v,(n),sizeof(v))
  23. #define lson l, m, rt<<1
  24. #define rson m+1, r, rt<<1|1
  25.  
  26. int n;
  27. int a[105];
  28.  
  29. bool cmp(int a,int b){
  30. return a>b;
  31. }
  32. int main(){
  33. while(scanf("%d",&n)!=EOF){
  34. rep(i,0,n-1) scanf("%d",&a[i]);
  35. sort(a,a+n,cmp);
  36.  
  37. int t1=-1;
  38. rep2(i,n-1,0) if(a[i]%2==1){
  39. t1=i;
  40. break;
  41. }
  42. if(t1==-1){
  43. printf("-1\n");
  44. continue;
  45. }
  46. swap(a[t1],a[n-1]);
  47. sort(a,a+n-1,cmp);
  48. if(a[0]==0){
  49. printf("-1\n");
  50. continue;
  51. }
  52. rep(i,0,n-1) printf("%d",a[i]); cout<<endl;
  53. }
  54. }

hdu 5055 Bob and math problem (很简单贪心)的更多相关文章

  1. HDU 5055 Bob and math problem(简单贪心)

    http://acm.hdu.edu.cn/showproblem.php?pid=5055 题目大意: 给你N位数,每位数是0~9之间.你把这N位数构成一个整数. 要求: 1.必须是奇数 2.整数的 ...

  2. HDU 5055 Bob and math problem(结构体)

    主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=5055 Problem Description Recently, Bob has been think ...

  3. hdu 5055 Bob and math problem

    先把各个数字又大到小排列,如果没有前导零并且为奇数,则直接输出.如果有前导零,则输出-1.此外,如果尾数为偶数,则从后向前找到第一个奇数,并把其后面的数一次向前移动,并把该奇数放到尾部. 值得注意的是 ...

  4. hdu----(5055)Bob and math problem(贪心)

    Bob and math problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  5. hdu 5435 A serious math problem

    A serious math problem Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...

  6. HDU 1757 A Simple Math Problem 【矩阵经典7 构造矩阵递推式】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=1757 A Simple Math Problem Time Limit: 3000/1000 MS (J ...

  7. hdu 1757 A Simple Math Problem (乘法矩阵)

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  8. HDU 5615 Jam's math problem

    Jam's math problem Problem Description Jam has a math problem. He just learned factorization.He is t ...

  9. HDU 1757 A Simple Math Problem (矩阵快速幂)

    题目 A Simple Math Problem 解析 矩阵快速幂模板题 构造矩阵 \[\begin{bmatrix}a_0&a_1&a_2&a_3&a_4&a ...

随机推荐

  1. CodeForce-803B Distances to Zero(贪心DP)

    Distances to Zero CodeForces - 803B 题意:给定一个数列 a0, a1, ..., an - 1.对于数列中的每一项都要求出与该项最近的0与该项的距离.保证数列中有至 ...

  2. 【PHP数据结构】队列的相关逻辑操作

    在逻辑结构中,我们已经学习了一个非常经典的结构类型:栈.今天,我们就来学习另外一个也是非常经典的逻辑结构类型:队列.相信不少同学已经使用过 redis . rabbitmq 之类的缓存队列工具.其实, ...

  3. 如何获取PHP命令行参数

    使用 PHP 开发的同学多少都会接触过 CLI 命令行.经常会有一些定时任务或者一些脚本直接使用命令行处理会更加的方便,有些时候我们会需要像网页的 GET . POST 一样为这些命令行脚本提供参数. ...

  4. springboot 配置 application.properties相关

    springboot 有读取外部配置文件的方法,如下优先级: 第一种是在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下.第二种是直接把配置文件放到jar包的同级目录.第三 ...

  5. JS高级面试题思路(装箱和拆箱、栈和堆、js中sort()方法、.js中Date对象中的getMounth() 需要注意的、开发中编码和解码使用场景有哪些)

    1.装箱和拆箱: 装箱:把基本数据类型转化为对应的引用数据类型的操作: var num = 123 // num var objNum = new Num(123) // object console ...

  6. 4.深入TiDB:执行计划执行过程详解

    本文基于 TiDB release-5.1进行分析,需要用到 Go 1.16以后的版本 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/ ...

  7. Css3 3D 旋转动画效果

    需求: 1.一个列表滑动效果为360 旋转 准备: 1.css 基础 2.Css 动画基础animation 3.transform-style概念 4 transform 概念 5 JavaScri ...

  8. CF891B-Gluttony【构造】

    正题 题目链接:https://www.luogu.com.cn/problem/CF891B 题目大意 给出\(n\)个数字互不相同的一个序列\(a\),求它的一个排列\(b\),使得选出任意一个\ ...

  9. P7323-[WC2021]括号路径【并查集,启发式合并】

    正题 题目链接:https://www.luogu.com.cn/problem/P7323 题目大意 给出\(n\)个点的一张有向图.每个边\((u,v,w)\)表示\(u->v\)有一个类型 ...

  10. Anaconda和canda简介及区别

    Anaconda简介: 1.是一个开源的Python发行版本,其包含了conda.Python等软件包,numpy,pandas(数据分析),scipy等科学计算包,而无需再单独下载配置. 可以在同一 ...