09 2018 档案
摘要:基础刷起来。水题刷起来。。。 其实区间覆盖的模板应该背这个。。。 同样维护left和right,只不过最后要加上r l+1。里面维护的就有点不一样。 代码:
        阅读全文
                
摘要:打表出奇迹!!! 这道题暴力当然能做,但是$n==2 \times 10 ^9$就不允许暴力了。 让我们打表出奇迹!!! 首先先了解一下如何有效率地算出一个数的约数个数: 最暴力的是从$1$枚举到$n$,每一次++。 优化一点的就是只枚举到$\sqrt{n}$。但是还是很慢的。 我们了解一下传说的约
        阅读全文
                
摘要:复习图论系列。。。 这道题刚学OI的时候我就看过。被那个公式吓跑了。 其实那个公式也容易算嘛。 $C_i = \sum_{(j,i) \in E}{W_{ji} \times C_j} u_i$ 注意这个公式对输入层不适用!!!所以不管他的阈值。 我们用拓扑排序,从入度开始的来,用类似于刷表法的方法
        阅读全文
                
摘要:毒瘤模板题!!!! 这道题看到什么维护序列的,肯定就是用数据结构的。 这个东西叫你做下面的事情: 首先确定用什么数据结构。 看到翻转,二话不说就用splay。 第一个操作:在第 位后加入 个数字。我们就把这一段数字建出一个子splay。用类似线段树的建树方式解决掉,比一个一个加入的建树方式快,常数小
        阅读全文
                
摘要:数论题用暴力做系列。。。 这道题看起来好像很头疼的样子。$n$的范围那么大怎么做??? 暴力出奇迹。。。 我们用个变量ans记录。套上$n$次循环,一次乘上$i$,然后把尾数的0都删掉。 但是可能一直都没有0,ans会慢慢爆精度。难道我们要写高精度? 其实不需要。我们只需要最后膜一个数就可以了。 具
        阅读全文
                
摘要:细节决定成败!!! 这道题说上去是计算器,其实就是考你三个数论知识。 第一个操作:卡速米模板。。。 第二个操作:exgcd的运用。我并不会,这里记录一下。 对于一个$xy \equiv z \pmod p$,我们为了方便,换成$ax \equiv z \pmod p$。 根据同余的性质,得:$ax 
        阅读全文
                
摘要:签到题爆零系列。。。 开局先说些有的没的。这道题是9月月赛的T1,题目名字叫做“签到题”,结果难度给了省选。。。真的毒瘤! 题面就是让你求$11\cdots1111(N个1) \equiv K \pmod m$。其中他说$m$是质数。 暴力模拟一分都拿不到!很气! 下面我们来看正解。。。 其实这$N
        阅读全文
                
摘要:刷模板过300祭,我好弱啊! 简化题意:求$a_1x_1+a_2x_2+...+a_nx_n$的最小正值。 这道题要用到贝祖定理:对于一个不定方程$ax+by=c$,$x$和$y$有正整数解的充要条件是$gcd(a,b)|c$。 显然对于多元的不定方程,这个东西也成立。 所以直接求这些系数的gcd,
        阅读全文
                
摘要:莫队第二道,有点感觉。。 ~~只不过这种感觉建立在无修改上面~~ 这道题跟上面一道HH的项链是一样的。只不过要你求的变成了平方和。 我就非常的naive,在莫队的时候没有用sum记录,暴力去统计,结果全部超时GG。 其实只需要减掉原来的平方和,再加上新的平方和就可以了。 其他的基本都差不多。 代码:
        阅读全文
                
摘要:第一道莫队,日常抄题解。。 luogu上面数据加强了,最后两个点莫队跑不过是最骚的。 但是不妨碍我写随笔。。。 莫队算法思想就是给你两个神奇的指针l和r,然后通过排序使得他们尽量为$O(1)$地跳完整个答案。 显然是个离线算法,但是只要搞出来就ok了呀。 代码参考的是Menci大佬的:https:/
        阅读全文
                
摘要:算是分块第一题了吧,抄题解过的。 简化版的题意:给你n个数的序列,支持区间加的修改,同时支持查询区间内大于等于w的数字的多少。 分块题的基本标志就是:xjb查询,普通修改。(来自qsc大佬的一句话) 显然如果用线段树的话维护这个东西就要吐血了。 我们使用分块,把一个序列分成$\lceil \sqrt
        阅读全文
                
摘要:学一下区间dp的套路。 这道题有一个显然的规律:关灯的时候,这些灯一定是连续的,否则答案不会更优。 这个真的很显然:既然关灯不需要时间,那就顺手关掉,留着浪费电。 所以一个重要的结论:那些关掉的灯就是一个区间! 我们可以定义一个$dp[i][j]$表示区间$[i, j]$已经被关掉时已经用掉的电能。
        阅读全文
                
摘要:我是真的不知道。。。 这道题对于每一个垃圾有两个决策:堆放不吃 或者 吃掉不堆放。 终止条件是堆放的高度达到$d$。想要求达到状态的最大生命值或者最久能活到多久。 可以联想到背包问题,而且是01背包。 把生命值当做价值,把高度当做重量,我们就可以用最小重量取出最大价值。 设$dp[i][j]$为前$
        阅读全文
                
摘要:好久没写图论练练手。 这道题有两种解法:tarjan和并查集。我用的是tarjan缩点。 缩完点之后就只需要找出入度为0的新点有多少个就可以了。 md这道题卡快读??? 代码: cpp include include const int maxn = 205; struct Nodes { int 
        阅读全文
                
摘要:上面两位dalao谈笑风生就讲完了这道题,但身为蒟蒻的我一窍不通,好不容易想通了写个题解纪念一下。 这道题要维护一个线段树里面的期望。期望是这么计算的: 如果每次在线段树区间加操作做完后,从根节点开始等概率的选择一个子节点进入,直到进入叶子结点为止,将一路经过的节点权值累加,最后能得到的期望值是多少
        阅读全文
                
摘要:不难,但是挺坑的。。。 这道题要你解决的问题比较显然能总结出来:每次找出第i大的元素所在位置p,然后对$[i,p]$区间翻转,每次询问这个第i大的元素所在位置。 看到翻转操作就想到了平衡树,所以用splay解决。 我们可以预处理出原序列中第k大的元素是在第几个。离散化排序一下就是了。 我们从1到n+
        阅读全文
                
摘要:联系splay ing! 这道题最好当然是用线段树写咯,但是平衡树什么东西都能维护,包括区间加,不如写一写练练手。 下放lazy的时候sum应该加上lazy的size倍,不需要用什么l和r来维护。 代码: cpp include define ll long long const int maxn 
        阅读全文
                
摘要:模拟赛不会系列。。。 这道题要求最小的极差(所选元素相差的最大值),最小的最大,想到了二分。 但是我菜,找不到什么单调性。 看了标程,发现可以用堆来搞定。相关算法可以从P1631和P2085看到。 思路是将每一组分别排序,然后每组预先选取第1到第c[i]个。算出一个最初的ans。 然后可以每次更新答
        阅读全文
                
摘要:不会区间覆盖,我真的菜! 这道题的第一个数字比较容易判断,从所有的沿海城市开始爆搜一遍,如果能全部搜到就1,否则0。 问题在于第二问。 一个可以证明的结论:当这个问题已经有解,每一个点向下面的提供水的范围是一个区间,不可能中间断了。 这个显然:如果中间断了的话,这个点就肯定无法到达,属于无解。 爆搜
        阅读全文
                
                    
                
浙公网安备 33010602011771号