PAT做题记录(更新完成)

  老师给报了一个GPLT(CCCC)玩玩。。。看了一下测评方式,感觉已经和时代脱节太多了。。。现在时限都卡进ms了吗。。。赛制也是奇奇怪怪。。。两年没认真做过题的退役选手赶紧来康复一波。。。顺便更新一下博客,再不更新就要长草了。。。

  接下来是一句话题解。。。

团体程序设计天梯赛-练习集

  现在做了几道:

          80

 

  这网站有毒吧。。。绿色是WA,红色是AC。。。

  L1-001~L1-005 水

  L1-006 直接从2开始暴力枚举,判定是否可行即可,注意素数情况,以及因子可以重复出现。

  L1-007~L1-008 水

  L1-009 直接通分,最后约分就可以了,注意结果为0的情况

  L1-010 sort

  L1-011 直接对b串中的字符hash,用map即可

  L1-012~L1-019 水

  L1-020 直接用两个桶记录就好了,读入时直接标记为m-1

  L1-021~L1-027 水

  L1-028 看数据范围,还以为要用robin-miller虽然我并不会写,其实直接暴力判断就好了,连筛法都不用写。。。

  L1-029~L1-038 水

  L1-039 先正着放到数组里面,再倒着输出就好了

  L1-040~L1-042 水

  L1-043 注意一下细节,直接套个桶就好了

  L1-044~L1-048 水

 

  一档题就结束了,总体来说都比较基础,难度不是很大。

 

 

  

  L2-001 最短路计数,再套一个统计最大值,不需要担心一个点会被重复计数,因为重复计数的情况的话路径会出现一个环,显然正权值图中的最短路不可能有环,最短路计数也是有一点技巧的,发现网上大部分关于SPFA的最短路计数代码都是错的,这个另写一个博客吧,一句话写不下。。。

  L2-002 直接把链表读进来,按地址排个序,然后二分查找就好了,比较值的话既可以在之前做二分查找,也可以建个桶。

  L2-003 部分背包问题,直接贪心就好了。

  L2-004 直接照着定义递归就好了,突然意识到二叉树具有完美的递归性质,所以对于二叉树的题目要往递归的方向思考。

  L2-005 先预处理一下,对每个集合都排个序,再去个重,然后每次询问对两个集合做归并即可。

  L2-006 直接递归,想了一个鬼畜做法,一直有一个数据wa,但是不知道是哪里出错了。。。

  L2-007 感觉直接并查集维护就好了,但是代码还没调出来。。。明天再调。。。原来是没有考虑编号为0的情况。。。

  L2-008 直接manacher

  (L2的超级大模拟好多啊!细节还多,感觉要写死了)。。。。

  L2-009 直接模拟

  L2-010 开始想的太多,以为要建立多个并查集,其实只需要维护是否是朋友就好了,然后二维数组保存关系,注意敌对关系不具有传递性!题面中说得十分隐晦。

  L2-011 直接递归就好了,数组开小了,导致一直wa,而且发现这种题不能用常用的方法保存二叉树,需要存一个点,记录他的左儿子和右儿子,否则退化成链的时候数组一定会越界。

  L2-013 直接并查集,倒序加边,注意不是所有的点都被打掉,要预先处理不受影响的点和边。 

  L2-014 直接维护一个单调递增的数列就好了,类似于lis的思路。 

  L2-015 水。

  L2-016 刚开始看题还以为是lca,后来一想,不是树啊。。。其实暴力搜索就好了,代码明天写好了,晚上不宜写搜索。。。

  L2-017 水。

  L2-018 超级大模拟。

  L2-019 两个名单排个序,然后做归并就好了,c++的string真好用,一本满足。。。

  L2-020 直接建个树,做一遍dfs就好。

  L2-021 排序就好了。

  L2-022 直接读进来,排序,二分查找就好了,注意会有无效节点(看了题解才知道。。。略有点坑

  L2-023 直接暴力枚举就好了,颜色数要严格等于k。。。

  L2-024 并查集。

 

 

 

  二档题就全部结束了,思路都比较简单,主要是模拟题,对细节要求比较高,还有几道搜索题,16和18因为太过繁琐,只是口头AC了。。。

 

 

 

  L3-001 感觉三档题难度不大啊。。。。01背包+记录路径。。。题意实际是找排序后字典序最小的方案。。。连记录路径都不会打了,干脆退学吧(捂脸熊。。。

  L3-002 直接维护一个栈和平衡树,用平衡树查询rank为(n+1)*n/2的值就好了,开始想了一个二分查找+线段树单点修改区间查询的鬼畜做法。。。

  L3-003 直接并查集

  L3-004 并查集维护联通性,再加个记录大小,一层一层记录就好了

  L3-005 多次最短路就好了,不过有个点过不去,不知道为什么。。。样例是四舍五入,结果测试的时候要向下取整。。。

  L3-007 两个边权的最短路,同时维护一下就好了。。。应该要先更新time,再更新了length。。。

  L3-009 一个点可去,当且仅当它两边的点高于它,维护一个栈就好了

  L3-015 搜索+剪枝 

 

  接下来是没有写代码的题:

  L3-006 平面几何,写了一发,果然WA了。。。就是各种判断,码量巨大。。。

  L3-008 直接做个bfs就好了。。。

  L3-010,L3-016 应该是直接模拟建树,判断一下就好了

  L3-011 就是一个多边权最短路,再记录一个最短路条数和记录路径就好了。。。

  L3-012 感觉这题贪心一下,或者用单调栈维护一下相邻两点之间的斜率就好了吧。。。

  L3-013 物理题,直接模拟就好了,虽然我物理学的不怎么样。。。

  L3-014 感觉就是一个spfa啊,只不过要维护的东西比较多

  L3-017 二分答案,用最短路判定看错题了。。。线段树

  L3-018 贪心+线段树(我有时间再看看这题)。。。

posted @ 2018-03-08 17:36  HTWX  阅读(204)  评论(0编辑  收藏  举报