题目 298 [NOI 2001]食物链
2022-03-28 07:09:42
|
|
求解线性同余方程组板子题
|
|
题目 298 [NOI 2001]食物链
2022-03-27 19:35:29
|
|
考试前切一道水题
|
|
满足 "前缀和 $\le S$ 的子段的长度" 的 $x$ 不是连续的(即对于一个满足性质的 $x$ ,长度小于 $x$ 的子段的前缀和不一定 $\le S$),所以对于二分的每一个答案 $x$ ,应该判断是否存在一个 $\ge x$ 的子段长度,而不是直接判断 $x$
|
|
调试了半天才发现是边界取错了,$l$ 应该是 $max(a)$ ,$r$ 应该是 $\sum_{i=1}^{n}a_i$,或者 $r$ 取一个较大的数应该也行
|
|
暴力找到子序列,用 set 把子序列的 HASH 存起来,最后输出 set 的大小
|
|
|
|
O2评测机好
|
|
题目 3285 [CSP 2019J]数字游戏
2022-03-22 18:56:42
|
|
贪心留念
|
|
sjz❥(^_-)wyw
|
|
题目 98 [NOIP 2002]均分纸牌
2022-03-22 17:26:52
|
|
回复 @嫖金勇娼凯文NB : 是的,我非常赞同
题目 98 [NOIP 2002]均分纸牌
2022-03-22 17:26:25
|
|
我是蒟蒻
题目 2493 [HZOI 2015] 魔兽世界-终极版
2022-03-22 11:54:08
|
|
fleury 算法求 euler 回路,以01排列之间的重叠部分为点,以01排列为边
|
|
这一题读入真膈应人,调试了一上午,重新写了好几遍,结果最后发现不用处理换行。总之就是出口处走 $1$ 格,其他地方走 $2$ 格
|
|
蒟蒻不知道怎么判断会不会相遇,于是直接暴力循环 $10000$ 遍,竟然还 AC 了
|
|
好吧,一开始的做法不太对,不过关于这一题,有一个非常巧妙的方法证明答案 $m$ 一定存在。
设一个序列 $f(n) = 1, 11, 111, 1111, 11111 ...$,易知序列中任意两个数做差的结果只由 $1, 0$构成,又因为任意一个正整数 $mod n $ 的值一定不会超过 $n$ ,因此,根据鸽笼原理,一定存在两个数 $x, y \in f(n)$,使得这两个数对 $n$ 取模的值相等,对这两个数做差,得到的数就是 $n$ 的倍数,除以 $n$ 之后,就得到一个数 $m$ 满足条件,不过这个方法求出来的不一定是最小值,实测只能过 $4$ 个点。不过由于这一题的数据规模不大,所以暴力也能很好的求解。这一巧妙的证明方法我是在 matrix67 大佬的 Blog 中了解到的,其中有很多巧妙的证明,推荐去看看 |
|
看大佬们的代码,貌似我的解法是最简洁的( 一开始我dfs是选数,不过调试起来太麻烦,就改成选符号了,输出可以把答案字符串存起来,然后排序一下
|