10 2018 档案

摘要:最近的模拟赛也考了不少,但感觉自己的水平并没有提升多少,每次模拟赛或多或少都有一些失误 有时候考试的时候思考一道题,已经无限接近正解了,却卡在最后一步始终无法突破 剩下的时间已经不多了,离联赛只有$16$天了。希望在剩下的时间里水平能有所长进,联赛能稳定发挥 阅读全文
posted @ 2018-10-25 08:09 xunzhen 阅读(110) 评论(0) 推荐(0)
摘要:Solution 要求最小代价的方案数,所以我们显然可以直接把这些元素从小到大排序 我们令$f_i$表示消去$i$个一样的数字的方案数,不难得出$f_i = \frac {i \cdot (i 1)} {2} f_{i 1}$ 假设当前有$i$个数字,我们可以任选两个数字把编号小的消去,所以方案数为 阅读全文
posted @ 2018-10-24 17:20 xunzhen 阅读(223) 评论(0) 推荐(0)
摘要:"题目蓝链" Solution 直接分块就可以了,对于每一块维护一个大根堆 每次操作对于整块的部分就直接先把待替换元素压进去,然后取出堆顶的元素 对于边界块就直接利用一个小根堆去暴力重构,然后直接依次从堆中取出最小的元素去替换就可以了,然后直接重建这个块的大根堆 时间复杂度$\mathcal{O}( 阅读全文
posted @ 2018-10-24 17:05 xunzhen 阅读(261) 评论(0) 推荐(0)
摘要:"题目蓝链" Solution 因为这是一个仙人掌图,所以我们可以通过$tarjan$缩点双找出图中所有的简单环。然后我们找出每一个环中的最大编号和最小编号,并按最大编号从小到大排序。然后我们把询问离线下来,并且挂在询问的右端点处 然后我们从左往右扫,处理每一个节点处的询问之前,先把最左能走的不会形 阅读全文
posted @ 2018-10-18 16:05 xunzhen 阅读(298) 评论(0) 推荐(0)
摘要:"题目蓝链" Solution 因为可以随便走,所以显然就是一个缩点+DP,只需要记录每一个强联通分量的最大和最小价格就可以了 Code cpp include using namespace std; define squ(x) ((LL)(x) (x)) define debug(...) fp 阅读全文
posted @ 2018-10-14 21:55 xunzhen 阅读(143) 评论(0) 推荐(0)
摘要:"题目蓝链" Solution 我们设$dp[i][j]$表示到第$i$个点多走了$j$步的方案数,$dis[i]$表示从$1$到$i$的最短距离 显然有以下转移方程式, $$ dp[i][j] = \sum dp[k][dis_i + j len_{i, k} dis_k] $$ 其中,$k$为所 阅读全文
posted @ 2018-10-14 21:29 xunzhen 阅读(198) 评论(0) 推荐(1)
摘要:在今天的模拟赛中,有一道题需要在$\mathcal{O}(n)$的复杂度内求出一个无序的序列的前$k$大值的和 然后我冥思苦想良久,还是想不到怎么做,最后只能$sort$水分了... 其实C++的模板库$algorithm$里,提供了一个非常好用的函数叫$nth\_element$ 调用方式为$nt 阅读全文
posted @ 2018-10-06 20:00 xunzhen 阅读(596) 评论(0) 推荐(0)