PAT刷题日志 2020/1/13

第一:1095 Cars on Campus (30分)
继续修改之前的题,这个思路闭塞,想了半天想出来一个很复杂的解决办法,最终还被vs对multimap不支持string最为键给拦下,参考算法笔记思路,按自己的方法去实现,写到后半部分数据测试出了一点点小问题,于是就反思了一下,发现自己喜欢用用set自动排序,重写结构体运算符<进行比较,但是这样必须要考虑一个问题,是否存在重复数据!,其实用sort排序复杂度和set自动排序一样,以后尽量用结构体吧,毕竟结构体还可重复。

这个题可能是我能力不太够吧,还是思路对了只能写出来一部分。。
这个地方出错的因为两车时间段内可能会查询多次,这个以后再改吧,我的水平还是有些不足。。

第二题:1092 To Buy or Not to Buy (20分)
这个其实是在乙级做过的,这里最好不要用while,scanf,不同编译器调试不一样,只有一行输入的时候可以考虑,多行最好不要用

第三题:1084 Broken Keyboard (20分)
简单字符串处理。注意两个字符串其中一个长度耗尽的时候,另外一个还存在的情况。

第四题,遇到了unorderedmap的坑,这个容器不可以用于顺序存储键值对,相反由于哈希表,他可能是乱序的,很坑,如果既要用到map排序,又要用到顺序遍历,可以在插入元素的时候建立一个顺序表,通过顺序表访问map里的元素。

第五题:1050 String Subtraction (20分)
这个题根据算法笔记是散列,我只是用了c++ string容器中的复杂用法很方便写出来了

第六题:1048 Find Coins (25分)
这个题一次提交直接过了,但是有几个需要注意的地方
第一是Map的使用,在查询过程中很可能创建了M[X]=0,其中X的原来不存在的元素,这样就无意间给Map增加了脏数据,解决办法就是利用特点,如M[X]==0 continue进行过滤数据。

第七题:1070 Mooncake (25分)
这个也是做过的题,这次再做了一遍感觉还可以,又体会到了题目挖坑的方法,1是不告诉你某个属性是intege还是double然后实际上是double,然后你说吧,人家也可以解释,我又没说是int,还是double,你当然应该全考虑所有情况呀,还有就是他会喜欢各种坑,比如A,B A买完了B还有,A,B刚好一起卖完,反正就是测试点多,各种情况都会坑你一手。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值