摘要: 成功滚粗 d1全程爆炸…心态崩了…写了个100+??+(15~20) t2瞎几把搞了一个exgcd…出来听说傻逼背包极其开心。 t3没看到链的部分分,然后菊花图还写错了? t3我只留了1h..后来发现认真想想1h还是能做出来的 d2没啥好说的 敲了大众分100+(65~70)+52 我猜t2的n=4 阅读全文
posted @ 2018-11-13 17:21 Sugar! 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 似乎是个大水题,多数的题解是暴力分块区间的做法。 这里介绍一种略微优秀一点的做法,截至发表时在UOJ上用时rk1,询问次数挺少说不定也有rk1 首先用O(n+1)的代价找到最大最小 考虑答案下限显然有max((r - l)/(n-1) , 1) 我们考虑动态分块,每次划分的块是当前的ans,显然在这 阅读全文
posted @ 2018-06-16 22:20 Sugar! 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 语文题,LCT维护最大生成树即可 在寻找根的时候要Splay(root)…太可怕了以前都不知道 如果不Splay据说复杂度会不对 如果不这么干会TLE extra_test 5/7 1 #include<bits/stdc++.h> 2 using namespace std; 3 struct n 阅读全文
posted @ 2018-06-08 12:37 Sugar! 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 妈妈我终于会写这玩意了~为了纪念一下特地在UOJ上把差评改成好评 官方题解已经写得很清楚了,这里稍微补充一下 计算每棵树对应的节点个数时,所谓容斥就是减去所有联通子图的答案 所谓DP的时候减去自同构个数就是除以(s1!*s2!……)其中s1,s2代表同构子树个数 一个很重要的优化是如果两棵树是不同构 阅读全文
posted @ 2018-05-31 13:09 Sugar! 阅读(667) 评论(0) 推荐(0) 编辑
摘要: 题目链接 首先把每一列看成一个点,这样子保证建出来是一棵树(yy一下就知道了) 然后构点分树。构点分树的时候维护每个格子到它的点分树上的祖先们的最近距离和对应的格子。 每个格子维护它管辖的范围内离它最近的黑点 update的时候更新所有祖先,注意更新答案时是vi = min(vi , da + ab 阅读全文
posted @ 2018-05-15 12:28 Sugar! 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有一个3*M的网格图,初始你在(2,1),你要去(2,m),途中有一些格子被堵住了。对于每一群堵住的格子,有三个参数ai,li,ri,表示第ai(1 <= ai <= 3)行的第li至ri个格子被堵住了。问你总的路径条数,mod1e9+7 Solution: 如果没有堵住的格子,那就是一 阅读全文
posted @ 2018-03-24 17:37 Sugar! 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 本来一个Div2的C怎么会去写题解…但是这场真的很毒,然后我的解法估计和标算不一样,所以就写了下(Editorial还没出qaq) 题目大意: 给出q次询问,每次询问有多少个数满足l <= x <= r 且 x = ap 其中a > 0 , p > 1 似乎解法是预处理指数是3 64并且乱搞指数是2 阅读全文
posted @ 2018-03-24 17:19 Sugar! 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 开坑虚树 2018.3.24这个坑可能需要闲置一段时间qaq 2018.5.17妈妈我也会写这题了QwQ 首先建出虚树,网上模板很多,不再详述(其实就是懒得写) 然后我们发现对于虚树上的一条父子边,显然对应一坨东西。具体来说大概是size[u的v方向第一个儿子] - size[v] 然后先处理出虚树 阅读全文
posted @ 2018-03-22 12:42 Sugar! 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 这里是Sugar…嗯估计没人知道我 然后发现大家都有博客那我就开个博客吧 阅读全文
posted @ 2018-03-17 21:56 Sugar! 阅读(88) 评论(0) 推荐(0) 编辑