题解报告:hdu 1263 水果
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1263
#include<bits/stdc++.h>
using namespace std;
struct node
{
char fruit[];//水果名称
char area[];//产地名称
int num;//交易次数
}c[];
bool cmp(node x,node y)//排序规则
{
if(strcmp(x.area,y.area)<)return true;//产地先从小到大排序
if(strcmp(x.area,y.area)== && strcmp(x.fruit,y.fruit)<)return true;//如果产地相同,则按照字典将水果排序
return false;//否则返回假
}
int main()
{
int N,M;
cin>>N;
while(N--){ //测试数据组数
cin>>M;
getchar(); //吃掉回车符
for(int i=;i<M;i++)//M次交易
cin>>c[i].fruit>>c[i].area>>c[i].num;
sort(c,c+M,cmp);//按规则排序
for(int i=;i<M;i++){
if(strcmp(c[i].area,c[i+].area)==){//如果当前产地与下一个产地相同
if(strcmp(c[i].fruit,c[i+].fruit)==){//且水果名称相同
c[i+].num+=c[i].num;//则将水果数目进行相加
c[i].num=;//将原来的水果数目清空
}
}
else{//如果不同
cout<<c[i].area<<endl;//不同就先输出产地
for(int j=;j<M;j++){//依次再进行比较
if(strcmp(c[i].area,c[j].area)== && c[j].num)//找到一个num是不为0的,即该产地某种水果的总数
cout<<" |----"<<c[j].fruit<<'('<<c[j].num<<')'<<endl;//输出最后的水果数
}
}
}
if(N!=)cout<<endl;//案例之间输出空行
}
return ;
}
下面是string版本:
#include<bits/stdc++.h>
using namespace std;
struct node
{
string fruit;//水果名称
string area;//产地名称
int num;//交易次数
}c[];
bool cmp(node x,node y)//排序规则
{
if(x.area!=y.area)return x.area<y.area;//产地先从小到大排序
return x.fruit<y.fruit;//如果产地相同,水果按字典排序
}
int main()
{
int N,M;
cin>>N;
while(N--){ //测试数据组数
cin>>M;
getchar(); //吃掉回车符
for(int i=;i<M;i++)//M次交易
cin>>c[i].fruit>>c[i].area>>c[i].num;
sort(c,c+M,cmp);//按规则排序
for(int i=;i<M;i++){
if(c[i].area==c[i+].area){//如果当前产地与下一个产地相同
if(c[i].fruit==c[i+].fruit){//且水果名称相同
c[i+].num+=c[i].num;//则将水果数目进行相加
c[i].num=;//将原来相同水果的数目清空
}
}
else{//如果不同
cout<<c[i].area<<endl;//不同就先输出产地
for(int j=;j<M;j++){//依次再进行比较
if((c[i].area==c[j].area) && c[j].num)//找到此时水果的最后一个计数num是不为0的,即为该产地某种水果的总数
cout<<" |----"<<c[j].fruit<<'('<<c[j].num<<')'<<endl;//输出最后的水果数
}
}
}
if(N!=)cout<<endl;//案例之间输出空行
}
return ;
}
题解报告:hdu 1263 水果的更多相关文章
- hdu 1263 水果 【二维map】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1263 题目大意: Problem Description 夏天来了~~好开心啊,呵呵,好多好多水果~~ ...
- HDU 1263 水果 结构体排序
解题报告:一个结构体排序的题,用了一个运算符重载,要注意的是不同的地方可能会产相同的水果,一开始没注意. #include<cstdio> #include<cstring> ...
- hdu 1263 水果
Problem Description 夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样J ...
- HDU 1263(水果统计 **)
题意是对水果的产地和种类进行统计再按格式输出. 代码如下: #include <bits/stdc++.h> using namespace std; struct node { ],pl ...
- hdu 1263 水果 结构的排序+sort自定义排序
水果 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
- hdu 1263 水果 (嵌套 map)
水果Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissio ...
- HDU 1263 水果 (STL map)
水果 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
- STL || HDU 1263 水果
map可以映射map…… 然后在map里面会自己排序 惊了 注意输出格式 回车的输出 #include <iostream> #include <cstdio> #includ ...
- 题解报告:hdu 1398 Square Coins(母函数或dp)
Problem Description People in Silverland use square coins. Not only they have square shapes but also ...
随机推荐
- centos 安装tkdiff
http://sourceforge.net/projects/tkdiff/files/tkdiff/4.2/ 下载tkdiff-4.2.tar.gz 然后在centos下解压 将tkdiff c ...
- c# 把一个匿名对象赋值给一个Object类型的变量后,怎么取这个变量? c# dynamic动态类型和匿名类 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic 深入浅析C#中的var和dynamic
比如有一个匿名对象,var result =......Select( a=>new { id=a.id, name=a.name});然后Object obj = result ;我怎 ...
- Linux学习笔记:系统启动引导过程
Linux系统启动引导过程 近期发现自己在仅仅是掌握上有几个比較硬的伤: 一.知识体系碎片,比方Linux,这学点那学点,结果没有成体系,串不起来: 二.记忆时间短暂,非常多的内容学了就忘,最后的结果 ...
- jquery源码学习笔记三:jQuery工厂剖析
jquery源码学习笔记二:jQuery工厂 jquery源码学习笔记一:总体结构 上两篇说过,query的核心是一个jQuery工厂.其代码如下 function( window, noGlobal ...
- Java中抽象类和接口的区别?
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- haproxy tcp 反向代理
配置如下: global log 127.0.0.1 local3 warning nbproc 1 maxconn 65535 daemon defaults log global option d ...
- Ubuntu redmine 安装
/******************************************************************** * Ubuntu redmine 安装 * 说明: * 随着 ...
- vue 使用过程中自己遇到的bug
需要安装npm git(windows系统需要安装) npm 是node的包管理工具 npm 国内的网站比较慢,推荐使用cnpm(淘宝的镜像) cnpm(npm) install 创建依赖-----因 ...
- codeforces round #433 div2
A:枚举一下就行了...居然wa了一发,题目一定要看清 #include<bits/stdc++.h> using namespace std; int n; int main() { c ...
- ChartCtrl源码剖析之——CChartLegend类
CChartLegend类用来绘制每一个波形的描述信息,它处于该控件的区域,如下图所示: CChartLegend类的头文件. #if !defined(AFX_CHARTLEGEND_H__CD72 ...