PTA 1016 phone bills(把复杂的信息进行打包分类,把对象挑出来单个击破就容易解决的啦。 #include<stdio.h>#include<stdlib.h>#include<string.h>structrecord{charname[25],time[15],flag[10];inttollTime,onOff; };structcustomers{intstart,end; };intcmp(constvoid*a,constvoid*b){structrecord *w=(str...
这道题就不说了,感觉是目前为止做过的比较恶心的一道:题目信息量大,不配合示例很难读懂;涉及到时间排序,处理起来很麻烦,代码量也轻而易举起来了。 我对排序题大概能总结出以下套路: 1. 结构体储存数据 2. 大型数组或者map哈希,用于快速查找对应结构体的序号 3. 手写一套compare函数用于结构体的比较 另外,对于...
}else{returnstoi((a.second).substr(9,2))<stoi((b.second).substr(9,2)); } } }boolcmp_diy2(vector<pair3> a,vector<pair3> b){//将所有数据按名字的字母序排序returna[0].firstb 返回值的单位:minintt1,t2,time; t1=(((a[0]-'0')*10+(a[1]-'0'))*24*60+((a[3]-'0')*10...
PAT 1016. Phone Bills (25) PAT 1016. Phone Bills (25) 题目分析 原题相信大家都看见了,题目几乎不涉及算法,主要就是考大家的细心,题目大意就是给我们所有用户的长途电话记录,根据用户分组,计算每个用户需要交的电话费,打印账单,这个题隐含着如果一个用户没有一次完整的打电话记录就不输出,我起初在这个上面...
PAT 甲级 1016 Phone Bills PAT 甲级 1016 Phone Bills 用结构体node保存一次call的人名、月、日、小时、分钟信息 因为要按人名输出,然后每个人名下按时间先后输出,所以我们需要给所有call进行排序,排序先按人名大小非降序排序,然后按时间先后排序 排序后,只要容器中前一个是on-line, 后一个是off-line,就是...
1016. Phone Bills (25) 字符串处理,时间模拟, 特殊情况判断,/***题意:给出一个堆通话记录on后面接上off,才算是一次完整的通话on后面接on,off后面接off的记录都不算。求报告单该报告单包含名字,以及各条通话记录,以及总通话费用。/***
PAT A1016 Phone Bills 简单方法和出错分析 技术标签: PAT题目链接 《算法笔记》上面给的代码在最后查找那一块结构有点混乱,臃肿,稍显复杂,其实完全没有必要。 书上的参考代码如下: #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn=1010; int toll[25]; ...
Phone Bills (25) 解题思路: 1.按照题目的意思,首先将每个人的记录按照时间排序。 2.两条有效的记录必然相邻,详细的模拟过程参考代码注释。 C++代码如下: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn = 1010; struct customer { int mo, dd, hh, mm; ...
1016 Phone Bills 题目 题意:给你一个长途电话收费标准,以及一张通话记录,计算每个客户的话费单。每张通话记录可能有不匹配的状况,你需要在on-line和off-line中找到匹配的一次完整的通话,然后开始计费。输出每次完整通话的开始和结束时间以及本次通话话费,然后再计算本月通话总计...
1016. Phone Bills (25) [排序] A long-distance telephone company charges its customers by the following rules: Making a long-distance call costs a certain amount per minute, depending on the time of …