zoukankan      html  css  js  c++  java
  • UVA10905 思维考察

     1 /*UVA10905 思维
     2 题目大意:
     3 给定n个正整数,你的任务是把它们练成一个最大的数
     4 思考:
     5 这道题目应该是在考察归纳的思维吧
     6 我一开始的思路是将两个字符串按位比较,当位数有剩余时,再分类讨论大小。
     7 但是这样写,细节上很容易出错.
     8 但是,如果换一种方法,忽略细节,直接连成s1+s2和s2+s1,这样尾数一定相同,直接按位比较,若s1+s2<s2+s1,
     9 说明s1<s2;
    10 当然,字符串首尾相连,是非常好写的。
    11 */
    12 #include <iostream>
    13 #include <cmath>
    14 #include <algorithm>
    15 #include <string.h>
    16 #include <stdio.h>
    17 #include <set>
    18 #include <stack>
    19 #include <vector>
    20 #define maxn 110
    21 using namespace std;
    22 
    23 int dig(char c){
    24     return c-'0';
    25 }
    26 struct S{
    27     char s[111];
    28     bool operator<(const S & X)const{
    29         char s1[210],s2[210];
    30         int l1=strlen(s),l2=strlen(X.s);
    31         for(int i=0;i<l1;i++) s1[i]=s[i];
    32         for(int i=0;i<l2;i++) s1[i+l1]=X.s[i];
    33         for(int i=0;i<l2;i++) s2[i]=X.s[i];
    34         for(int i=0;i<l1;i++) s2[i+l2]=s[i];
    35         for(int i=0;i<l1+l2;i++){
    36             if (s1[i]<s2[i]) return true;
    37             if (s1[i]>s2[i]) return false;
    38         }
    39         return true;
    40     }
    41 }Ss[maxn];
    42 int main(){
    43     int n;
    44     while(cin>>n){
    45         if (n==0) break;
    46         for(int i=0 ;i < n;i++){
    47             scanf("%s",Ss[i].s);
    48         }
    49         sort(Ss,Ss+n);
    50         for(int i=n-1;i>=0;i--){
    51             if (i==0) printf("%s
    ",Ss[i].s);
    52             else printf("%s",Ss[i].s);
    53         }
    54     }
    55     return 0;
    56 }
  • 相关阅读:
    laravel配置路由出现404
    laravel数据库操作
    dedecms操作数据库
    数据库存储过程详解
    :数据库存储过程缺点总结
    一个SQL存储过程面试题(比较简单)
    也谈用友被面试经历【去年杭州用友被拒】
    用友面试经历 续【最终遭拒】
    Appium Appium 链接夜神模拟器
    Problem A
  • 原文地址:https://www.cnblogs.com/little-w/p/3648448.html
Copyright © 2011-2022 走看看