论一条咸鱼如何瞎搞「WC2015」未来程序
说不定还会持续更新?(
2019-04-26
闲得没事翻到这道题了想试一试。
首先看到测试点 1。
很明显的一个 $a\times b\operatorname{mod}c$。
啊什么爆 unsigned long long
?Python 了解一下(
然后去看测试点 2。
差不多能总结出这么一个规律来
然后手动打表
$n$ | $a_{n}$ | $b_{n}$ | $c_{n}$ |
---|---|---|---|
$0$ | $1$ | $0$ | $0$ |
$1$ | $1$ | $1$ | $1$ |
$2$ | $4$ | $2$ | $1$ |
$3$ | $9$ | $6$ | $4$ |
$4$ | $25$ | $15$ | $9$ |
$5$ | $64$ | $40$ | $25$ |
然后发现 $a_{n}=F_{n+1}^{2}$,于是推出 $b_{n}=\sum_{i=0}^{n}F_{i}^{2}$,$c_{n}=F_{n}^{2}$。
有一个结论是 $\sum_{i=0}^{n}F_{i}^{2}=F_{n}F_{n+1}$,证明也不难。于是就这样 xjb 写了个矩乘。
然后去看测试点 3。
自然数 $k$ 次方和,恩没难……等等四次方和是啥(
https://www.zybang.com/question/cd5fa7b364c5ac9f3194eac2525ae6aa.html
光速逃(
然后去看测试点 4。
如果把 1
看成黑点,0
看成白点,type=0
就是在遍历所有黑点对,直接一个 $\text{cnt}(\text{cnt}-1)$ 解决。
type=1
就是对于每个黑点,求出其到所有白点的曼哈顿距离的最小值,再求和。
不难想到枚举这个最小值,虽然复杂度很假但是数据随机啊(
然后去看测试点 5。
很明显的仅包含黑点的矩形的计数……等等,这不就是半个与或和 吗(
然后我就突然回想起来了,那道题 WA 成 0 分的记忆。
先把前 4 个点交上去看看吧。然后 10+1+10+6=27。
诶我测试点 4 怎么 6 分啊……一看发现 type=0
写成了 $\cfrac{1}{2}\text{cnt}(\text{cnt}-1)$……
关于测试点 2……先放一放。
然后去看测试点 6。
感觉不怎么会光速弃疗。
然后去看测试点 7。
经过一番分析,我发现这是在求给定数独字典序最小的解,然后第 $i$ 组数据输出前 $i$ 行?(并不是)
打了个爆搜然后跑到死也只跑出来前三组。
哦不我连搜索都不会写了,我失败了 :(
然后去看测试点 8。
大致可以抽象成是给你 7 个点,每个点权值 $w_{i}\in[1,n]\cap\mathbb{N}$,再给你一些边,对于一条边 $(x,y)$,必须要有 $w_{x}\lt w_{y}$,求方案数。
第 1 问给了一条链,很明显方案数就是 $C_{n}^{7}$。
看到后 9 问好像十分麻烦,先跳过吧。
然后去看测试点 9。
一上来一坨字符画一样的东西差点吓到我。
从 VSCode 右边的缩略图里能够很明显看出是一个人。
在仔细阅读了代码之后,我发现这是 10 道解答题。
然后……诶好像差不多该溜了。
2019-04-27
一大早上被比我不知道强到哪里去了的 asuldb 安利了一道看上去很吓人的题。
继续来搞这道提答。
答上了测试点 9 的前两问,然后去看测试点 10……??!!
这是什么鬼东西怎么这么一大坨子函数……
一开始没看源文件大小,后来一看发现竟然有 1000+KB。
吓得我电脑都卡了。
发现本质上是让求 _()
这个函数的调用次数。于是我就让这个函数返回 1,其他函数返回它调用的所有函数的返回值之和。
然后……算是勉强凑出来前 3 问,5 行左右。
一交……诶我后两个点怎么还 RE 了?
不会是我没交 4 和 5 的 .out
文件吧……然后发现还真是,补上去两个空文件之后评测结果正常了,10+1+10+10+0+0+0+1+2+5=39。
然后发现测试点 7 实际上是将整个数独压成一行复读 $i$ 遍。(好像也不是)
6,8,9,10 四个点挣扎了一会还是弃疗了。
回去看测试点 5……想到反正数据随机,写了一个稍微优化了一点的暴力。
然后改了改测试点 2。一交发现什么变化都没有。
luogu 又出锅了?这么想着又交了一遍,然后还是什么变化都没有。
// 以上内容差不多是以回忆的形式写下来的。接下来差不多是边调题边写(
然后发现我测试点 5 的二维前缀和写错了(
仔细一推测试点 2 发现
但是就算这样也不应该 WA 啊……写了个暴力发现是因为偷懒矩阵没清空……
然后再一交,10+10+10+10+10+0+0+1+2+5=58。
然后我突然有了一个想法,对于测试点 10,我可以直接用一个 std::map
维护出源文件中的所有函数的值啊。
写了写一交……诶怎么还少了 4 分?
一检查发现只是计算了调用次数,忘了再乘以那个 ___
。
于是再一交,10+10+10+10+10+0+0+1+2+10=63。
回去看了看测试点 7,感觉没救了,于是想搞一搞测试点 9。
看到第 4 问的答案只有 3 个字符,直接搜于是搜出来一个 。
再像这样搜了一下第 5 问发现是 we
。
考虑到后面都是英文单词了于是把枚举的范围压缩到了 a
~z
。
然后搜出了第 6 问是 hold
,第 7 问是 these
。
然后上百度一查发现这句话是 we hold these truths to be self-evident
。
那么还剩第 3 问那个人名……这种问题无解吧,尤其是对于我这种咸鱼来说。
于是一交,10+10+10+10+10+0+0+1+9+10=70。
简单推了一下测试点 7,发现指数非常有规律,于是把系数扔到 OEIS 搜了一波。
虽然是找到了,但是公式也没有生成函数也没有什么也没有。
下面还给我来一行 approved(
弃疗。告辞。