zoukankan      html  css  js  c++  java
  • HDU 1263 水果 结构体排序

    解题报告:一个结构体排序的题,用了一个运算符重载,要注意的是不同的地方可能会产相同的水果,一开始没注意。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 using namespace std;
     6 struct node {
     7     char f_name[85],loc_name[85];
     8     int n;
     9     friend bool operator < (node a,node b) {
    10         int len1 = strlen(a.loc_name);
    11         int len2 = strlen(b.loc_name);
    12         int M = max(len1,len2),i = 0;
    13         while(i < M) {
    14             if(a.loc_name[i] != b.loc_name[i])
    15             return a.loc_name[i] < b.loc_name[i];
    16             i++;
    17         }
    18         len1 = strlen(a.f_name);
    19         len2 = strlen(b.f_name);
    20         M = max(len1,len2),i = 0;
    21         while(i < M) {
    22             if(a.f_name[i] != b.f_name[i])
    23             return a.f_name[i] < b.f_name[i];
    24             i++;
    25         }
    26         return 0;
    27     }
    28 };
    29 int main() {
    30     int T,N,flag = 0;
    31     scanf("%d",&T);
    32     while(T--) {
    33         node M[105];
    34         if(flag)
    35         puts("");
    36         flag = 1;
    37         scanf("%d",&N);
    38         M[0].f_name[0] = M[0].loc_name[0] = M[N+1].f_name[0] = M[N+1].loc_name[0] = NULL;
    39         M[0].n = M[N+1].n = 0;
    40         for(int i = 1;i <= N;++i)
    41         scanf("%s%s%d",M[i].f_name,M[i].loc_name,&M[i].n);
    42         sort(M+1,M+N+1);
    43         for(int i = 1;i <= N;++i) {
    44               if(strcmp(M[i].loc_name,M[i-1].loc_name))
    45               printf("%s
    ",M[i].loc_name);
    46               if(strcmp(M[i].loc_name,M[i+1].loc_name) || strcmp(M[i].f_name,M[i+1].f_name))
    47               printf("   |----%s(%d)
    ",M[i].f_name,M[i].n);
    48               else M[i+1].n += M[i].n;
    49         }
    50     }
    51     return 0;
    52 }
    View Code
  • 相关阅读:
    刷题柱 -- 暂封
    模板重搭建計劃
    思路与好题记录与小技巧
    错误记录
    随便记点东西……
    图床
    杂碎的小技巧
    hnsdfz -- 6.21 -- day7
    hsdf -- 6.21 -- day6
    hnsdfz -- 6.20 -- day5
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3265742.html
Copyright © 2011-2022 走看看