这个题相对复杂一点,读题用了20分钟,然后就是疯狂写代码,其实这个主要是计算费用复杂一点,其他倒是还好,第一遍提交有测试点1,2没过,回头看了一眼代码觉得计算不可能出错,然后一分析就是测试点1,2很显然是有用户但是没有有效数据,所以不用输出名字。修改后提交AC。

附本人AC代码:

#include<iostream>
#include<vector>
#include<string>
#include<map>
#include<algorithm>
using namespace std;
vector<int>rate(24);
double daymoney = 0;
struct Node {int d, h, s;int status;
};
map<string, vector<Node>>Map;
bool cmp(Node&A, Node&B) {return A.d == B.d ? A.h == B.h ? A.s < B.s : A.h < B.h : A.d < B.d;
}
double handle(Node A, Node B) {double res = 0;printf("%02d:%02d:%02d %02d:%02d:%02d %d ", A.d, A.h, A.s, B.d, B.h, B.s,(B.d*24*60+B.h*60+B.s-A.d*24*60-A.h*60-A.s));if (A.d == B.d) {if (A.h == B.h) {res += (B.s - A.s)*rate[A.h];}else {res += (60 - A.s)*rate[A.h];for (int j = A.h + 1; j < B.h; j++) {res += rate[j] * 60;}res += rate[B.h] * B.s;}}else {res += (60 - A.s)*rate[A.h];for (int j = A.h + 1; j <= 23; j++) {res += rate[j] * 60;}for (int j = A.d + 1; j < B.d; j++) {res += daymoney;}for (int j = 0; j < B.h; j++)res += rate[j] * 60;res += (B.s)*rate[B.h];}printf("$%.2lf\n", res/100);return res;
}
int main() {int N, d, h, m, s;string name, status;for (int i = 0; i < 24; i++) {scanf("%d", &rate[i]);daymoney += rate[i] * 60;}scanf("%d", &N);for (int i = 0; i < N; i++) {cin.ignore();cin >> name;scanf("%d:%d:%d:%d", &m, &d, &h, &s);cin >> status;if (status == "on-line")Map[name].push_back({ d,h,s,1 });else Map[name].push_back({ d,h,s,0 });}for (auto it = Map.begin(); it != Map.end(); it++)sort(it->second.begin(), it->second.end(), cmp);for (auto it = Map.begin(); it != Map.end(); it++) {int flag = 0;double res = 0;for (int j = 0; j < it->second.size()-1; j++) {if (it->second[j].status == 1 && it->second[j + 1].status == 0) {if (flag == 0) {printf("%s %02d\n", it->first.c_str(), m);flag = 1;}res += handle(it->second[j], it->second[j + 1]);}}if(flag==1)printf("Total amount: $%.2lf\n", res/100);}return 0;
}

1016 Phone Bills (25分)相关推荐

  1. 【注意点分析】1016 Phone Bills (25 分)

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 A long-distance telephone company charges its customers by the fo ...

  2. PAT 1016 Phone Bills (25分) 逻辑较为复杂 sort() + map

    题目 A long-distance telephone company charges its customers by the following rules: Making a long-dis ...

  3. 1016 Phone Bills (25 分) 【未完成】【难度: 中 / 知识点: 模拟】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805493648703488

  4. 1016 Phone Bills (25)(25 分)

    1 题目 2 解题思路 3 AC代码 4 总结 1 题目 A long-distance telephone company charges its customers by the followin ...

  5. 1016. Phone Bills (25)

    时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue 去掉非法数据计算账单 A long-distance telep ...

  6. PAT甲级1016 Phone Bills :[C++题解]字符串处理(复杂题)(C语言格式化读入、输出很便利!!!)

    文章目录 题目分析 题目链接 题目分析 原题: 长途电话公司按以下规则向客户收费: 拨打长途电话每分钟要花费一定的费用,具体收费取决于拨打电话的时间. 客户开始拨打长途电话的时间将被记录,客户挂断电话 ...

  7. 12门课100分直博清华!这份成绩单冲上热搜,但学霸小伙也曾考过25分

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一 ...

  8. PTA 7-3 旅游规划 (25分)(双权值Dijkstra最短路)

    7-3 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...

  9. PTA 03-树1 树的同构 (25分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构   (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...

最新文章

  1. 美国正在衰落的24个行业:“猝不及防”还是“温水煮青蛙”?
  2. 网页效果图设计之色彩索引
  3. 【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )
  4. h5 rtmp推荐控件_H5播放Rtmp之videojs播放
  5. Cocos Creator JS 时间戳日期转换
  6. 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用
  7. word之八大文本替换技巧
  8. iis7 php 文件 不可写,PHP配置文件不會加載IIS7 x64
  9. B. Balanced Lineup
  10. 论坛中的验证码的作用
  11. (转)理解SQLSERVER中的排序规则
  12. java buffer类_Java ByteBuffer类
  13. bzoj 2627: JZPKIL [伯努利数 Pollard-rho]
  14. Linux下修改文件权限
  15. WebSocket 实现链接 群聊(low low low 版本)
  16. 【OpenCV学习笔记】【函数学习】五(颜色空间转换cvCvtColor()函数)
  17. LRU算法的一种实现方法
  18. 原生ajax响应json数据
  19. Java新人入职第十天
  20. Android实现记账本(麻雀虽小,五脏俱全)

热门文章

  1. git via xkcd
  2. 工作人员做好项目协调服务器,项目团队协作做好三件事
  3. JavaScript判断系统语言
  4. openwrt系统理解
  5. Cloudflare 与 GoDaddy
  6. 小孟5w接了个盲盒小程序,三周开发完毕
  7. 惠普关闭 secure boot
  8. 创新趋势 | SaaS增长新趋势:产品驱动增长PLG(上)
  9. SSD LOSS-train interation 可视化
  10. Spring AOP 学习总结