摘要: link 一眼看上去没什么思路,手摸一下样例,发现有不同性质的点对求解想法很不一样,考虑先分类讨论看看。 从简单的约束到强的约束分类讨论,这样更可做,也更好讨论, 比如首先我就想到两点是否重合,然后所求点一定要到两点的距离相等,我就想到路径长度的奇偶性,接着就考虑复杂的深度关系 ...... 对于当 阅读全文
posted @ 2024-06-21 13:02 Zhang_Wenjie 阅读(11) 评论(0) 推荐(0)
摘要: link 求操作后的所有路径中边权和最长的边的最小值,二分 考虑 对答案的最短时间二分,每次得到一个二分值 mid 显然,我们主要关心 路径和比 mid 大的运输路径,这里要维护树上两点间的路径,所以要用到 lca,同时可以记录每个点的距离(1 -> x)\(dist[x]\),这样可以用边前缀和直 阅读全文
posted @ 2024-06-19 13:27 Zhang_Wenjie 阅读(25) 评论(0) 推荐(0)
摘要: link 赛时过了 ABCD,rank 15000+ ,我嘞个豆啊,虽然菜成 shi 了,但是打得很开心,凌晨一点多还兴奋得不得了。 就是网络好差,比赛开始好几分钟了还被关在外边。 总的来说题目还是很简单的,但是很考基础功,感觉我基础都没打好,哎,下次加油吧,一场比赛下来还是能学到很多东西的 A - 阅读全文
posted @ 2024-06-13 11:53 Zhang_Wenjie 阅读(168) 评论(0) 推荐(0)
摘要: link 发现单向航线存在负边权,不能直接跑 dij 而双向的道路保证为正边权,可以在道路中跑 dij,想到把道路进行类似“缩点”的操作,把直接相连的道路看做连通快 那么在连通快这样的团之间,有航线相连,且航线满足一个很好的性质:若存在 x -> y,则不可能存在 y -> x,即无环 那团与航线所 阅读全文
posted @ 2024-05-24 13:50 Zhang_Wenjie 阅读(15) 评论(0) 推荐(0)
摘要: 分层图(其实就是 拆点 的一种) 分层图在 最短路 中经常用到。 直观上讲,就是将一个图复制 k 倍,互相是平行的,即互不影响,分层图 两两之间 会有 决策边 相连。 这就等价于要在一个图上进行 k 次决策,对于每次决策,不影响图的结构,只影响目前的状态或代价。一般将决策前的状态和决策后的状态之间连 阅读全文
posted @ 2024-05-20 21:39 Zhang_Wenjie 阅读(178) 评论(1) 推荐(0)
摘要: link 这个题目很不同,它给出的是柱子的数量,要反推球的数量。 可以这样认为,给出边数,求上面的点数。 每次只能在某根柱子的最上面放球 -> 点的连接方式是一串串的,易发现图是个 DAG; 然后好像没什么可推的性质了。 题目没给出点数,那肯定要去不断试不同的点数 n ,每次进行判定是否符合条件,这 阅读全文
posted @ 2024-05-14 22:48 Zhang_Wenjie 阅读(14) 评论(0) 推荐(0)
摘要: link 赛时:300 + 400, rank 2001 吊车尾 A - Exchange 简单模拟,没有多想什么,直接贪心,总是先保证用较大的数去覆盖花销,应该是一种有解且较快的方法,同时显然的,我对花销从大到小进行排序,一遍过。 #include <bits/stdc++.h> #define 阅读全文
posted @ 2024-05-13 21:45 Zhang_Wenjie 阅读(54) 评论(0) 推荐(0)
摘要: 二分图同时满足 不存在奇数环 和 染色法不矛盾。 二分图的判定:染色法 O(n) #include <bits/stdc++.h> using namespace std; const int N = 1e3 + 10, M = 2e6 + 10; struct { int to, next; }e 阅读全文
posted @ 2024-04-15 13:17 Zhang_Wenjie 阅读(12) 评论(0) 推荐(0)
摘要: 2-26 ~ 3-3(5题) 寒假又 tm 荒废了,今年应该是我在 OI 道路上的最后一年了,可能确切地说是六个月,不多说什么了,时间不多了,做什么事都要高效起来。 开学第一个星期,有点不适应,shabby一中搞半月假,周考也炸了。摸了几题前缀和的题目做,算是练练手,感觉差不多找回来了。 现在大致的 阅读全文
posted @ 2024-03-03 22:23 Zhang_Wenjie 阅读(57) 评论(1) 推荐(0)
摘要: 题目 二话不说,直接按题意模拟暴搜,当然 \(O(nq)\) 的复杂度显然是寄了的。 不过,在模拟的过程中,我在链式前向星的删边中居然一开始错了,还是要 mark 一下以后注意。 void del(int x, int pre) { e[top].to = e[top].next = 0; h[x] 阅读全文
posted @ 2023-11-11 13:23 Zhang_Wenjie 阅读(21) 评论(0) 推荐(0)