摘要: P1966 [NOIP2013 提高组] 火柴排队做题笔记 这题和 P5677 一样,是从树状数组题单里翻出来的,由于开始看时感觉题解代码写的不是很清晰,就先放进了做题计划里,后来几次看这道题,但由于第一次看题可能留下了一些心理阴影以及时间不多,一直没切掉。直到先去做了用树状数组求逆序对,才感觉这道题变得简单了不少。思路:用一个数组储存输入数组的标号,按对应 阅读全文
posted @ 2022-09-03 09:53 Jason142 阅读(36) 评论(0) 推荐(0) 编辑
摘要: P5677 [GZOI2017]配对统计做题笔记 一道花了两天的题目,主要是因为死活找不出 bug。从树状数组题单里翻出来的,看了第一篇题解。主要思路是把输入的点从小到大排序,统计“好的配对”的数量,统计方法为若当前数和两边的数的差的绝对值相等则当前数和两边的数都构成“好的配对”,否则当前数和两边数中与当前数差较小的那个数构成“好的配对”。注意:若 阅读全文
posted @ 2022-08-20 15:06 Jason142 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 开始的方法是以每个点为出发点各跑一遍 \(Dijkstra\),然后求和,发现 \(TLE\) 了 \(5\) 个点,只有 \(50 pts\)。然后看了题解,思路是建反图,正反图各跑一遍 \(Dijkstra\),然后过了。 #include <bits/stdc++.h> using names 阅读全文
posted @ 2022-06-25 14:54 Jason142 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 思路是建一个反图,在原图上从点 \(1\) 开始跑一遍 \(SPFA\),算出点 \(1\) 到点 \(x\) 的最短路径上的价格最小值 \(e_x\);再在反图上从点 \(n\) 开始跑一遍 \(SPFA\),算出点 \(n\) 到点 \(1\) 的最短路径上的价格最大值 \(f_x\),答案为 阅读全文
posted @ 2022-06-13 07:32 Jason142 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 初学 \(SPFA\) 时在书上看到了这题,,书上给了两个解法,一个是用 \(SPFA\) 来 \(dp\),另一个是二分答案 \(+ SPFA\)。本来想写第一种,结果翻遍了题解区(因为不会实现),也没找到一片清晰易懂的这种做法的题解,只好写第二种。具体思路是二分第 \(k+1\) 长的电话线的长 阅读全文
posted @ 2022-06-12 22:13 Jason142 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 开始以为能秒切,结果发现不清楚如何实现路径输出,于是乎瞅了眼题解,发现是递归输出路径,\(AC\) 后搞不清为啥要先输出 1 1,因为如果这样我的代码会输出两次 1 1,后来发现我的输出方式是递归到 0 0 再返回,而题解递归到 1 1 就返回了,没有输出 1 1,所以我的代码会多输出一次 1 1。 阅读全文
posted @ 2022-06-06 15:52 Jason142 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 感觉自己 \(BFS\) 还是太弱了,考试时只会写 \(DFS\),连 \(BFS\) 的基本思路和原理都比较模糊,所以最近开始练 \(BFS\)。这道题鸽了很久了,以前练 \(BFS\) 的时候看题解觉得码量偏大就换题了,咕到了现在。开始时没想出来,可能有以前看题的心理阴影在里面吧,然后就看了题解 阅读全文
posted @ 2022-06-06 10:57 Jason142 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目: 传送门 思路: 由于问的是删去单个字符仍能保持回文的方案数,若从回文字符串的两侧删单个字符,则不能保持回文的性质(除非字符串中的字符全部相同,否则另外一侧必定有一个和被删字符相同的字符剩下),所以要从中间开始删。所以问题就变成了求该回文字符串中间字符连在一起的相同字符的数量(因为只能删掉单个 阅读全文
posted @ 2022-05-23 14:39 Jason142 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 题目: 传送门 思路: 模拟,用变量 \(t\) 表示松鼠当前所在的位置,循环遍历第二个字符串 \(b\),若 \(a_t = b_i\),则 \(t+1\),直到字符串 \(a\) 或 \(b\) 被遍历完为止。注意: 如果字符串从 \(0\) 开始输入,则答案需 \(+1\),因为题目中松鼠是从 阅读全文
posted @ 2022-05-21 22:53 Jason142 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 题目: 传送门 思路: 首先排除 \(n\) 为奇数,的情况,由于车轮数都为偶数,所以若 \(n \bmod 2 = 1\),则输出 \(-1\),\(n<4\) 的情况也需输出 \(-1\),因为一辆车的最少轮子数为 \(4\),否则求出车辆数的最大值和最小值。 最小值: 由于 \(6 > 4\) 阅读全文
posted @ 2022-05-17 11:36 Jason142 阅读(19) 评论(0) 推荐(0) 编辑