随笔分类 - 真 • 暴力出奇迹
摘要:考场几乎想到了正解,然而我也不知道当时在想啥,在没有证伪的情况下只是觉得无法实现就否了…… 最后打的好象是达哥说的O(4*15*n*m),复杂度不是很会证反正T成了暴力…… 题解: 对于测试点8,9,10:bfs每个0的联通块,如果联通块边缘某累方块出现了x个,那么贡献为x*(x-1)/2。注意去掉
阅读全文
摘要:考场用的set,代码复杂度很低,时间复杂度$O(sum log)$,一发过了大样例,以为1e6的数据很稳了就没再管(然后就挂掉了……) 考后把set化成unordered_set就A了。其实$sum log$的时间复杂度是没有什么问题,只不过有个细节没有考虑好,考场上以为set赋值和clear的复杂
阅读全文
摘要:神仙题,打了个whs式暴力卡常卡A了(我没脸),正解还是要打的,然而作者的题解看不懂…… Drink: 看惯了罗马音的小朋友们都会知道r发l的音,题目名:D Link. 每次修改都会改变O( N ^ 2 )个位置的值,二维平面上没有一个确定的正方向,因此也无法使用传统数据结构。 什么东西的变化量是O
阅读全文
摘要:Blue: 贪心。 我们不妨给蛤定一个先后顺序,则贪心策略即从右至左每只蛤依次往最远的石子跳。 证明: 如果最右的蛤不往最远的石子跳,而是选择了一个较近的石子,那么必然会存在一个该蛤左边的蛤越过了它跳向其右边。因为每个蛤的能力是相同的,我们可以交换路线使得该贪心策略不变差。 接着用归纳法可以证明对于
阅读全文
摘要:作者的正解: 算法一:对于30%的数据: 直接枚举区间直接模拟,时间复杂度O(N3)。 算法二:对于60%的数据:枚举旋转中心点,然后再枚举旋转的端点, 我们可以用O(n)的预处理求前缀和记录固定点,总时间复杂度O(N2)。 算法三:对于100%的数据:假设有最优解为[i,j](i,j皆为下标,A[
阅读全文
摘要:又是一道神仙题。考试的时候居然打了一个回滚莫队,不知道我咋想的…… 先说一个某OJT80,洛谷T5分的思路(差距有点大): 可以把位置和编号映射一下,区间内最大值和最小值对应的位置,每次更新,直到找到符合条件的情况,复杂度玄学。最值的维护可以用ST表或者线段树,前者复杂度低些。 然后说正解吧: 先放
阅读全文
摘要:一道非常神仙的题. 算法一:对于20%的数据: 模拟,直接走K步,时间复杂度O(K) 算法二:对于40%的数据:走M*N步内必有一个循环节。直接走,找循环节,时间复杂度O(M*N) 正解大概有两种做法(我是第三种……) 1.利用分块思想,一行为一块。用一个数组记录第一列第i行走M步到达的位置jump
阅读全文
摘要:大水题一个,然而由于两颗线段树的阴影我死了…… 算法一:对于50%的数据: 送分,直接一个一个乘,时间复杂度O(KN)。 算法二:对于80%的数据:如果我们不一个一个乘,将第i行的和乘x ,第j列的和乘y ,所计算出的结果与正解不同的地方仅仅是(i,j)这一个元素。而这样的数不足K2个。所以我们把这
阅读全文
摘要:一眼看去树套树啊,我可能是数据结构学傻了…… 是应该去学一下莫队进阶的东西了。 上面那个东西我没有打,所以这里没有代码,而且应该也不难理解吧。 这么多平衡树就算了,不过线段树还是挺好打的。 正解3: 主席树啊,其实并不需要再加一个树状数组,因为每次修改只影响两个,暴力修改就行了。 正解4: 分块(就
阅读全文
摘要:先说一个规律: 如图将每个月出生的兔子的编号写出来,可以发现一只兔子在哪一列他的父亲就是谁。 每列的首项可以通过菲波那契求得。 然后你就可以像我一样通过这个规律打表每个点的父亲,预处理出倍增数组,倍增求LCA,省掉了建树。期望得分70,实际得分50。 但是其实这已经很接近正解了:对于点i,那么fa[
阅读全文
摘要:https://baijiahao.baidu.com/s?id=1610302746201562113&wfr=spider&for=pc
阅读全文
摘要:题解?noipT1还需要题解?正解就是$n^2$大暴力。 考试的时候打了$n^2$的暴力,也想到了正解的优化,然而觉得它太麻烦了,而且$n^2$怎么优化也过不了50000啊,而且即使不优化前面30分我也能拿到。 然而就把正解放弃了……完戏。 然而这题ifelse打的我好恶心啊…… ps.linux终
阅读全文
摘要:这题也是挺神仙的,现在O(n)的解法还没打出来,只是用O(nlogn)卡过去了(理论上可以过),sdfz某大佬用三分拿到了65分…… 考试连暴力都没打出来…… n2暴力T40: 首先将环拆成链,我们可以O(n)枚举一个点不动,将它左右的点向他靠近,总复杂度O($n^2$). 代码也挺简单,貌似我的代
阅读全文
摘要:一道大模拟,打的我要吐了。 先说一下60%暴力吧,其实模拟光的路线即可,最好还是把边界设为障碍,这样就不用判边界了。最后输出n*m可以骗到10分。 注意不要把n和m弄混(愁死我了)。 1 #include<iostream> 2 #include<cstdlib> 3 #include<cstdio
阅读全文
摘要:1 1 2 1 3 2 4 5 5 41 6 24 7 231 8 924 9 0341 10 2684 11 69761 12 68785 13 210802 14 009247 15 0444762 16 5484969 17 07675353 18 097446921 19 007836774
阅读全文

浙公网安备 33010602011771号
ヾ(≧O≦)〃嗷~