10 2018 档案
摘要:题目 "luogu" 暴力60pts部分 显然如果没有出现次数==5的条件 显然是$N_{2}$的求lcs的模板 但是加点条件就完全不同了 思路 这个题短小精悍~~,不想数据结构那么傻逼无脑~~ 我们考虑一下$N_{2}$的缺点 首先我们知道,只有a[i]==b[j]的时候 才会对答案有所贡献(先不
阅读全文
摘要:思路 好久之前的了,忘记什么题目了 可以到我这里做 "luogu" 反正就是hdu数据太水,导致自己造的数据都过不去,而hdu却A了 好像是维护了最大值和次大值,然后出错的几率就小了很多~~也许是自己写错了~~,忘记了 留坑待补 代码
阅读全文
摘要:题目 "luogu" 思路 $$\frac{1}{n} \sum_{1}^{n}( a_{i} A)^{2}$$ $$\frac{1}{n} \sum_{1}^{n}( a_{i}^2 2 A a_{i}+A^2)$$ $$\frac{1}{n} (\sum_{1}^{n} a_{i}^{2} 2
阅读全文
摘要:题目 "CF" "luogu" 思路 ~~好菜呀~~ 数据太大,需要离散化 但是离散化x的时候,需要带上x 1和x+1 因为这也有可能是答案,~~当然你分类讨论也阔以~~ 然后维护一下第一个1出现的位置和第一个0出现的位置 代码
阅读全文
摘要:思路 区间$L$到$R$内加等差数列 已知首项为$K$,公差为$D$ 那么每一位加的数值为 $$K+(i L) D(L include include include include include define ls rt '9'; s = getchar()) if (s == ' ') f =
阅读全文
摘要:思路 让你干啥你就干啥呗 查询第x个妹子就get一下再修改 这里稳一点就维护了三个东西,也许两个也可以 代码 cpp include include include include include include define ls rt '9'; s = getchar()) if (s == '
阅读全文
摘要:思路 脑子还真的是好东西,自己太笨了 容易发现父亲节点和儿子节点的关系 儿子节点大于父亲节点 儿子节点和父亲节点之差为斐波那契数,且斐波那契数为小于儿子节点的最大的一个 1e12中有60左右的斐波那契数,打出表来查找就好了,深度不超过60 代码
阅读全文
摘要:思路 01串的区间求和,区间翻转 lazy%2==0 则不用翻转,lazt%2==1则要翻转 模板题 代码
阅读全文
摘要:思路 把公式拆开维护两个值,一个a[i]的总和,一个a[i] i的总和 也可以用树状数组维护,模板题 代码
阅读全文
摘要:[TOC] 2319. 「NOIP2017」列队 链接 "loj" 思路 动态开点线段树,详见代码。 代码 cpp include define ll long long using namespace std; const int N=5e5+7; int read() { int x=0,f=1
阅读全文
摘要:题目 "bzoj3289" 思路 区间求逆序对 离散化+莫队+树状数组修改 代码 cpp / Problem: 3289 User: 3010651817 Language: C++ Result: Accepted Time:5716 ms Memory:3064 kb / include inc
阅读全文
摘要:题目链接 "luogu4396" 思路 ~~唯有水题暖人心~~ 咕了4天,今天跟着std对拍才做出来~~不得不说题解真的水的一批~~ 先离散化一下 第一问差分询问,权值树状数组套一套就好了 $nlog_{n}$ 第二问,Emma 莫队,加上树状数组维护修改 $nlog_{n}sqrt_{n}$ $3
阅读全文
摘要:题目 "luogu" 思路 唯有水题暖人心 只用子树的树,当然dfs序列 区间查询出现k次的数字的个数 nub[i]记录出现次数大于i的数字个数 发现只是O(1)的转移,想想就OK了 代码 ps:为了更好地阅读,我加一段cpp吧
阅读全文
摘要:题意 询问区间众数出现的次数 思路 唯有水题快人心 离散化+莫队 莫队一定要先加后减,有事会出错的 莫队维护区间众数: 维护两个数组,一个数组记录权值为x的出现次数,一个记录出现次数为x的数的个数 add很简单,更新ans delete的时候,删除的是ans话,查看出现次数为x的个数是否为1,是就a
阅读全文
摘要:1到n内0,1个数相同的个数的最长字串 $i =j$ $$1的个数=0的个数$$ $$sum[i] sum[j 1]=i (j 1) (sum[i] sum[j 1])$$ 这里把$(j 1)$替换为$j$ $$2 sum[i] 2 sum[j]=i j$$ $$2 sum[i] i=2 sum[j
阅读全文
摘要:思路 重要信息是区间m次修改最多能产生2 m 1个区间 然后就成了简单dp了 代码 cpp //f[j][i][0/1]表示到j这个点分了i段,这一段染色的是0/1的作业数 include using namespace std; define ll long long const int maxn
阅读全文
摘要:[TOC] 链接 "luogu" "bzoj" 思路 区间dp 然后$f[i][j][k]$ 区间$[i,j]$能否变成$k$字符 (字符当然得转化一下) 字符的个数不多,直接暴力$check$,暴力转移就行,$%%gzy$ 区间dp还是挺套路~~模板~~的 只不过看着恶心,其实真不恶心 代码 cp
阅读全文
摘要:链接 "链接" 思路 好久之前的考试题了吧,之前貌似抄的题解 现在理解了~~怕忘了~~,就写个题解记录一下吧,题目还是不错的 枚举中间点j $$H_{i} H_{j}=H_{j} H_{k}$$ $$H_{k}+H_{i}=2 H_{j}$$ 由于H是一种n的排列,所以取值就是$[1,n]$ 那就可
阅读全文
摘要:题目链接 and 题目大意 "hdu3698" 但是 hdu的数据比较弱,所以在这luogu提交吧 "UVA1490 Let the light guide us" 有一个$n m$的平原,要求每行选一个点,选$n$个点建造塔楼。 平原上每个点都有他自己的花费时间和魔法值。 为了正确控制塔楼,我们必
阅读全文
摘要:题目链接 "loj" 思路 亲戚很少,可以每个点都算一遍单源最短路 然后dfs 错误原因 算错复杂度 cpp include include include include using namespace std; const int inf = 0x3f3f3f3f; const int maxm
阅读全文
摘要:题目 "loj链接" 思路 瞎jb写,考试最后5min找到bug,考玩10minAC,成功GG 这题没啥算法(感觉跟dp有点关系?) 他们说正解是单调队列,鬼知道咋用,反正我是O(n) 题目数据最大好像是1e5,大家也可以写个O(nlogn)的水一水拉 就是预处理个 f1 ,f2,代码里的注释很详细
阅读全文
摘要:题目&&链接 反正数据都是一样的,luogu比较友好 "luogu" "bzoj" lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0 1 a b 把[a, b]区间内的所有
阅读全文
摘要:"题目链接" 咳咳咳,第一次没大看题解做DP 以前的我应该是这样的 哇咔咔,这tm咋做,不管了,先看个题解,再写代码 终于看懂了,卧槽咋写啊,算了还是抄吧 第一问类似于noip的那个跳房子,随便做 这里重点讲第二问 首先,不会做,那就先写暴力 dp当然得写dp暴力了 $f[k][i]$ 表示选择了k
阅读全文
摘要:乍一不咋会 ╭(╯3╰)╮ 把地雷L到R看成一条线段 要求的就是区间内有多少条线段经过 很明显是要用[1,R]内的起点个数 [1,L 1]的终点个数 然后这起点和终点个数可以用简单的差分线段树来维护一下 其实树状数组更适合一些 cpp include include include include
阅读全文
摘要:"luogu链接" 题目大意: 有一个节点有颜色的树 操作1.修改子树的颜色 操作2.查询子树颜色的种类 注意,颜色种类小于60种 只有子树的操作,dfs序当然是最好的选择 ~~dfs序列是什么,懒得讲了,自己搜吧~~ 然后开两个数组,begin_和end_记录节点子树在dfs序数组中的开头和结尾
阅读全文
摘要:前言 spoj需要FQ注册,比较麻烦,大家就在 "luogu" 评测吧 题目大意: $n$ 个数,$q$ 次操作 操作$0 _ x_ y$把$A_x$ 修改为$y$ 操作$1 _ l _r$询问区间$[l, r]$ 的最大子段和 思路 维护一个区间的$sum,lmax,rmax,max$ 就是区间和
阅读全文
摘要:题目大意 "题目链接Naive Operations" 题目大意: 区间加1(在a数组中) 区间求ai/bi的和 ai初值全部为0,bi给出,且为n的排列,多组数据(0时 显然、对答案没有贡献 当区间内的mi include include define ls rt '9'; s = getchar
阅读全文
摘要:题目大意 多次操作 查询并修改区间内长度==len的第一次出现位置 修改区间,变为空 思路 类似于求区间最大子段和(应该是这个吧,反正我没做过) 维护区间rt的 从l开始向右的最长长度 从r开始向左的最长长度 l到r内的最长长度 反正维护的是个01序列, 随便做 又是小错误,第一遍就能过非得debu
阅读全文
摘要:建议去 "uoj" 那里去测,数据比较强 位运算的题目,就得一位一位的分开考虑 然后枚举初始值的最高位是0 是1 的最终攻击 (二进制内)最高位是1肯定比次位是1次次位是1次次次位是1···的大吧,显然 然后贪心O(N)就能过去啦 感觉自己是学傻了,看到n=5w就写了个nlog 情况好像有某一位的初
阅读全文
摘要:思路&心路 一眼认定沙比提 写的比较慢,写了1小时吧 开心的交上去 卧槽,只有20? 不服不服,拿着题解的代码去对拍 Emma, include define ll long long define ls rt '9' || s = '0' && s 1; build(l,mid,ls); buil
阅读全文
摘要:结构体线段树原来正确率比用数组的高啊,原来用数组写的线段树写挂的结构体竟然过了,哇咔咔 以后就转坑结构体线段树了 cpp include include define ll long long using namespace std; const int maxn = 1e5 + 7; const
阅读全文
摘要:[TOC] 此代码是个假代码,只能糊弄luogu,以后再改,路过大佬也可以帮一下辣 update 10.6 换了个struct 版本的线段树(应该不是这个锅) 反正改对了就好 二分答案 check用线段树区间修改01
阅读全文

浙公网安备 33010602011771号