hdu1263(结构体排序/二维map)
来源:互联网 发布:中国大数据企业50强 编辑:程序博客网 时间:2024/05/16 10:56
题目链接:水果
题目大意:给出n笔交易,交易包括水果产地,水果名字和价格,要求按如下格式输出
产地
|----水果名称1(收益)
|----水果名称2(收益)
按字母序排列
题目分析:
做法1:结构体排序
用place和name存储当前的产地和名字,
向后比较,每比较到不同的产地就输出上一个的place和和name
如果比较到相同的产地但名字不同,就输出上一个的名字
记得最后一个要额外输出的输出
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int maxn=105;struct node{ char place[85],name[85]; int p; bool operator <(const node&n)const { if(!strcmp(place,n.place))return strcmp(name,n.name)<0; else return strcmp(place,n.place)<0; }}a[maxn];int main(){ //freopen("in.txt","r",stdin); int T,n,sum; char name[85],place[85]; scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=0;i<n;i++)scanf("%s %s %d",a[i].name,a[i].place,&a[i].p); sort(a,a+n); printf("%s\n",a[0].place); strcpy(name,a[0].name); strcpy(place,a[0].place); sum=a[0].p; //strcpy(a[n].name,"0"); //strcpy(a[n].place,"0"); for(int i=1;i<n;i++){ if(strcmp(place,a[i].place)){ printf(" |----%s(%d)\n",name,sum); strcpy(name,a[i].name); strcpy(place,a[i].place); sum=a[i].p; printf("%s\n",place); } else if(!strcmp(place,a[i].place)&&strcmp(name,a[i].name)){ printf(" |----%s(%d)\n",name,sum); strcpy(name,a[i].name); sum=a[i].p; } else sum+=a[i].p; } printf(" |----%s(%d)\n",a[n-1].name,sum); if(T)printf("\n"); } return 0;}
做法2:二维map<strng,map<string,int> >
map<strng,map<string,int> >::it映射相同的place
it2=(it->second).begin()映射到相同的name
记得每次case后m要clear()
#include <stdio.h>#include <string>#include <map>#include <iostream>using namespace std;const int maxn=105;int main(){ //freopen("in.txt","r",stdin); int T,n,num,sum; map<string,map<string,int> >m; scanf("%d",&T); string name,place; while(T--){ scanf("%d",&n); for(int i=0;i<n;i++){ cin>>name>>place>>num; m[place][name]+=num; } for(map<string,map<string,int> >::iterator it=m.begin();it!=m.end();++it){ cout<<it->first<<endl; for(map<string,int>::iterator it2=(it->second).begin();it2!=(it->second).end();++it2){ cout<<" |----"<<it2->first<<"("<<it2->second<<")"<<endl; } } m.clear(); if(T)printf("\n"); } return 0;}
0 0
- hdu1263(结构体排序/二维map)
- hdu1263 水果(结构体排序)
- STL(map和二维map/hdu1263)
- HDU1263-map
- HDU1263 二维映射
- hdu1263(map(自己定义的数据结构的map))
- hdu1263(水果 map)
- hdu1263 二重map
- hdu1004 Let the Balloon Rise && hdu1263 水果(map)
- 二维map排序
- 【HDU1263】【STL-MAP套MAP】(省份,水果,数量)MAP嵌套大开发
- 二维数组利用结构体进行排序
- hdu1263
- HDU 1263 水果(map或结构体排序)
- hdu1263水果 STL map的使用
- hdu1263水果(map容器的嵌套)
- hdu 1263 水果【二维map+排序】
- 2016 小灶练习 E (HDU1263)
- 配置globus子节点
- U9接口服务被调用报错怎么查看
- POJ 4720 Naive and Silly Muggles -
- LeetCode 270. Closest Binary Search Tree Value
- Json解析中文乱码,Newtonsoft.Json
- hdu1263(结构体排序/二维map)
- laravel框架自带验证码使用
- Oracle数据库之对象视图、索引、序列、同义词
- BroadcastReceiver类中调用activity的函数
- day12 异常
- 框架源码分析心得
- The type java.lang.Object cannot be resolved. It is indirectly referenced from r
- 解决java web项目导入后出现的有关问题 -cannot be read or is not a valid ZIP file
- 字符表达式