摘要: 暂且叫这个游记吧。倘若我没有更新就说明我退役了。 好吧,永咕了。 阅读全文
posted @ 2019-11-11 22:05 wljss 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 贪心 该问题可以分为两个子问题: 1.求一种拓扑顺序使点的编号最大值的更新次数最多。 2.求一种拓扑顺序使点的编号最大值的更新次数最少。 对于第一个子问题,我们贪心的想,每次走到所有能走的点中编号最小的点。这种贪心显然是正确的,因为如果我们先走编号较大的点,再走编号较小的点,显然不如先走编号较小的点 阅读全文
posted @ 2019-10-28 07:08 wljss 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 数学推式子 先膜拜一下考场上直接切掉的 "燃情" 巨佬。 首先分析一下部分分。(蒟蒻并没有分析出$b=0$的解法) 对于$a=b$的情况,只要满足$x=y$即可,所以一共有$inf$组解。 对于$a\le 1000$的情况,我们直接暴力判断一下即可。 对于$a=0$的情况,我们需要求$y^2 x^2 阅读全文
posted @ 2019-10-20 22:10 wljss 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 题目描述 对于一个序列a1,a2,…,an,子段是指它的一个连续部分,即al,al+1,…,ar 容易发现,一个长度为n的序列有$\frac{n(n+1)}{2} $ 个子段。例如序列3,7,4有下列子段: (3),(3,7),(3,7,4),(7),(7,4),(4) Mia希望分别求出这些子段的 阅读全文
posted @ 2019-10-18 22:16 wljss 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 模拟 题意很清晰,需要我们模拟一下计算正确的单词的个数。对于" include include include using namespace std; int n, m , ans, t, siza, sizb; const int N = 1001000; string a[N], b[N]; 阅读全文
posted @ 2019-10-13 18:17 wljss 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 单调栈&可持久化0/1trie树 题目链接 题目描述 小w学会了RMQ算法,他现在可以求出一个给定数组某一段子区间的最大值,最小值。 在这之前,他也学会了前缀和,并且他知道前缀和可以扩展到位运算求出区间异或和。 现在你给了他一个长度大小为n的数组,为了考察小w写RMQ以及前缀异或和的正确性,你要求他 阅读全文
posted @ 2019-10-12 16:52 wljss 阅读(837) 评论(0) 推荐(0) 编辑
摘要: 以下为扯淡内容 Waring!:CSP前的题解略微有些不忍直视 血的教训:样例解释不可信 Q:为什么我叫 \(wljss\) ? A:在做某道神奇的字符串题目时rand()出了 \(wljss\) 以上为扯淡内容 没错,我是 \(wljss\) ,一个很菜很菜的菜鸡 QQ:2450805514 中华 阅读全文
posted @ 2019-10-06 18:25 wljss 阅读(1008) 评论(0) 推荐(3) 编辑
摘要: 单调栈 这是某次olinr巨佬给我们出的考试题。首先暴力$O(n^2)$是不能过的(~~废话~~),我们考虑每一个数值对答案的贡献,也就是ta能当最小值的序列个数。 倘若ta能成为最小值,那么也就是在这个数列里没有比ta大的数值,这也就转化为了求出右边第一个比ta小的值的位置和左边第一个比ta小的值 阅读全文
posted @ 2019-09-25 17:48 wljss 阅读(134) 评论(2) 推荐(0) 编辑
摘要: 单调栈 只是一个比较简单的单调栈题目。我们换一种思考方式,我们枚举每段数列的最小值,然后我们发现当ta所能成为最小值的范围越大,对最终的答案的贡献也就越大。所以我们考虑求出ta所能成为最小值的数列的范围。 这也就转化为了求出右边第一个比ta小的值的位置和左边第一个比ta小的值的位置的问题。这可以用单 阅读全文
posted @ 2019-09-25 17:09 wljss 阅读(83) 评论(2) 推荐(0) 编辑
摘要: 分块 提供几个必须要知道的注意事项。 首先暴力统计区间众数的时间复杂度为接近$O(n^2)$,时间复杂度不够优秀,所以我们 ~~遇事不决先分块~~考虑分段处理。数据范围比较大,所以我们离散化。所谓离散化就是将数据排好序后用ta的排名来代替ta本身(需要另开一个数组)。$nlog(n)$时间内就能完成 阅读全文
posted @ 2019-09-22 11:39 wljss 阅读(139) 评论(2) 推荐(0) 编辑