zoukankan      html  css  js  c++  java
  • 题目记录3

    题目:http://vj.bit-studio.cn/contest/209424#problem/C

    方法:本来用把产地与水果名字用结构体包装起来,然后再把数量与结构体map起来,纠结于map怎么排序,后来发现用结构体更容易

    代码:

    #include<iostream>
    #include<map>
    #include<cstdio>
    #include<cstdlib>
    using namespace std;
    typedef struct flu
    {
        char name[81];
        char place[81];
        int shuliang;
    }flue;
    bool cmp(const flue&f1, const flue&f2) {
        return f1.name > f2.name;
    }
    int main()
    {
        int n;
        scanf("%d", &n);
        for (int l = 0; l < n; l++)
        {
            if (l != 0)cout << endl;
            int m;
            scanf("%d", &m);
            flue *fff=new flue [m];
            for (int j = 0; j < m; j++)
            {
                flue temp;
                scanf("%s", temp.name);
                scanf("%s", temp.place);
                scanf("%d", &temp.shuliang);
                bool flag = false;
                for (int k = 0; k < j - 1; k++)
                {
                    if ((strcmp(temp.name, fff[k].name) == 0) && (strcmp(temp.place, fff[k].place)) == 0)
                    {
                        flag = true;
                        fff[k].shuliang += temp.shuliang;
                        m--;
                        j--;
                    }
                }
                if(flag==false)fff[j] = temp;
            }
            for (int i = 0; i < m; i++)
            {
                for (int j = i+1; j < m; j++)
                {
                    if (strcmp(fff[i].place, fff[j].place))
                    {
                        if (strcmp(fff[i].place, fff[j].place) > 0)
                        {
                            swap(fff[i], fff[j]);
                        }
                    }
                    else
                    {
                        if (strcmp(fff[i].name, fff[j].name) > 0)
                        {
                            swap(fff[i], fff[j]);
                        }
                    }
                }
            }
            char tem[81];
            strcpy(tem , fff[0].place);
            cout << fff[0].place << endl;
            for (int i = 0; i < m; i++)
            {
                if (strcmp(fff[i].place, tem) == 0)
                {
                    cout << "   |----" << fff[i].name << "(" << fff[i].shuliang << ")" << endl;
                }
                else
                {
                    strcpy(tem, fff[i].place);
                    cout << fff[i].place << endl;
                    cout << "   |----" << fff[i].name << "(" << fff[i].shuliang << ")" << endl;
                }
            }
        }
    }
  • 相关阅读:
    CV 第十一课 Segmentation Localization Detection 下
    面经
    overfitting问题
    CV 第十一课 Segmentation Localization Detection 上
    CV 第十一课 Classification + Localization 中
    SVM的特点
    UNSW CV第二课 上 Image Prepocessing
    UNSW CV Assignment1
    UNSW CV 第一课 下 投影 RGB HSV
    HDU 4350
  • 原文地址:https://www.cnblogs.com/miaos/p/miaoz-1-11.html
Copyright © 2011-2022 走看看