• HDU 1263 水果


    转载请注明出处:http://blog.csdn.net/a1dark

    分析:一道二级排序的模拟题、排序也没啥说的、就那样吧

    #include<stdio.h>
    #include<algorithm>
    #include<iostream>
    #include<string.h>
    #include<string>
    using namespace std;
    struct node{
    	string name;
    	string place;
    	int num;
    }fruit[200];
    bool cmp(node a,node b){
    	if(a.place<b.place)
    		return true;
    	else if(a.place==b.place){
    		if(a.name<b.name)
    			return true;
    	}
    	return false;
    }
    int main(){
    	int t,t1,n,i,j,flag;
    	scanf("%d",&t);
    	t1=t;
    	while(t--){
    		if(t!=t1-1)
    			printf("
    ");
    		scanf("%d",&n);
    		for(i=0;i<n;i++)
    			cin>>fruit[i].name>>fruit[i].place>>fruit[i].num;
    		sort(fruit,fruit+n,cmp);
    	flag=0;
    	for(i=0;i<n;i++){		
    		for(j=0;j<i;j++){
    			if(fruit[i].name==fruit[j].name&&fruit[i].place==fruit[j].place){
    				fruit[j].num+=fruit[i].num;
    				flag++;break;
    			}
    		}
    	}
    	cout<<fruit[0].place<<endl;
    	cout<<"   |----"<<fruit[0].name<<"("<<fruit[0].num<<")"<<endl;
    	for(i=1;i<n;i++){
    		if(fruit[i].name==fruit[i-1].name&&fruit[i].place==fruit[i-1].place)
    			continue;
    		if(fruit[i].place==fruit[i-1].place){
    			cout<<"   |----"<<fruit[i].name<<"("<<fruit[i].num<<")"<<endl;
    		}
    		else{
    			cout<<fruit[i].place<<endl;
    			cout<<"   |----"<<fruit[i].name<<"("<<fruit[i].num<<")"<<endl;
    		}
    	}
    	}
    	return 0;
    }


  • 相关阅读:
    python命令行工具模块-click
    python项目代码打包成Docker镜像
    背包九讲
    秒杀项目的3个奇数问题:并发队列的选择,请求接口的合理设计,高并发下的数据安全
    java类加载过程
    索引失效
    java面试
    进程间通信
    HashMap在Jdk1.7和1.8中的实现
    十大排序算法
  • 原文地址:https://www.cnblogs.com/pangblog/p/3301783.html
Copyright © 2020-2023  润新知