浅谈区间最值操作与历史最值问题:https://www.cnblogs.com/AKMer/p/10225100.html 题目传送门:http://uoj.ac/problem/164 论文题.论文做法如下: 首先我们定义一种标记\((a,b)\),表示给这个区间先加上\(a\)再跟\(b\)取\(max\),不难发现题目里提到的三种操作分别都可以用这样的标记来代替: 1.区间加\(v\):\((v,-inf)\) 2.区间减\(v\):\((-v,0)\) 3.区间覆盖:\((-inf,v)…
「清华集训2015」V 题目大意: 你有一个序列,你需要支持区间加一个数并对 \(0\) 取 \(\max\),区间赋值,查询单点的值以及单点历史最大值. 解题思路: 观察发现,每一种修改操作都可以用一个函数 \(f(x) = \max(x+a,b)\) 来表示. 操作 1: \(f(x) = (x,0)\). 操作 2:\(f(x)=(-x, 0)\). 操作 \(3\):\(f(x)=-(inf,0)\). 这东西显然满足结合律,事实上还是封闭的 \[ f1(f2(x)) = \max(\m…
题目链接 UOJ #164 题解 首先,这道题有三种询问:区间加.区间减(减完对\(0\)取\(\max\)).区间修改. 可以用一种标记来表示--标记\((a, b)\)表示把原来的值加上\(a\)后对\(b\)取\(\max\). 那么区间加\(x\)就是\((x, -\infty)\),区间减\(x\)就是\((-x, 0)\), 区间修改就是\((-\infty, x)\). 然后,这道题有两个询问,一个询问当前值,一个询问历史最大值,于是我们打两种不同的标记,分别维护两个询问的答案:\…
目录 题目 原题目 简要题目 正解 这道题题目简洁新颖,吸引读者阅读兴趣... 题目 原题目 点这里 简要题目 需要你维护长度为n的序列并支持下列操作: 区间加法: 区间赋值: 区间每个 \(a_i\) 变成 \(\max⁡(a_i-t,0)\): 单点询问值 单点询问历史最大值 \(n,m≤500000\),其中 \(m\) 为操作数. 正解 首先考虑,如果这道题没有历史版本我们该怎么做? 其实很简单,这里我就不赘述了 其实是我懒得说 . 那么我们考虑,对于这个 \(5\) 操作,我们应该怎么…
传送门 线段树好题. 要求支持的操作: 1.区间变成max(xi−a,0)" role="presentation" style="position: relative;">max(xi−a,0)max(xi−a,0) 2.区间加 3.区间覆盖 4.询问单点最值 5.询问单点历史最值 注:以下提到的标记都是向下传递的懒标记. 这题直接更新区间最大值貌似不好维护,因此我们需要更换思路,对于每个节点维护一个标记(a,b)" role="…
题目链接:V 这道题由于是单点询问,所以异常好写. 注意到每种修改操作都可以用一个标记\((a,b)\)表示.标记\((a,b)\)的意义就是\(x= \max\{x+a,b\}\) 同时这种标记也是支持合并的.有\((a,b)+(c,d)=(a+c,\max\{b+c,d\})\) 用上这种标记的话,\(1\)操作就是\((x,0)\),\(2\)操作就是\((-x,0)\),\(3\)操作就是\((-inf,x)\). 要查询单点值的话只要把所有标记都下放了就好了. 这种标记也支持取\(\m…
目录 @description@ @solution@ @accepted code@ @details@ @description@ Picks博士观察完金星凌日后,设计了一个复杂的电阻器.为了简化题目,题目中的常数与现实世界有所不同. 这个电阻器内有编号为 1∼n 的 n 个独立水箱,水箱呈圆柱形,底面积为 1 \(m^2\),每个水箱在顶部和底部各有一个阀门,可以让水以 1 \(m^3/s\) 的流量通过,每个水箱的上阀门接水龙头,可以无限供应水,下阀门不接东西,可以让水流出.水箱顶部和底…
题目:http://uoj.ac/problem/164 把操作改成形如 ( a,b ) 表示加上 a 之后对 b 取 max 的意思. 每个点维护当前的 a , b ,还有历史最大的 a , b 即 ma , mb . 因为最后的答案是 tp[ x ] + ma , mb 中的一个,所以这样维护.之所以不直接维护 max{ tp[ x ]+ma , mb } ,是为了方便转移. 转移 a , b 的时候就是 \( max{max{x+a,b}+a',b'} <=> max{x+a+a',ma…
[LOJ#2330]「清华集训 2017」榕树之心 试题描述 深秋.冷风吹散了最后一丝夏日的暑气,也吹落了榕树脚下灌木丛的叶子.相识数年的Evan和Lyra再次回到了小时候见面的茂盛榕树之下.小溪依旧,石桥依旧,榕树虽是历经荣枯更迭,依旧亭亭如盖,只是Evan和Lyra再也不是七八年前不经世事的少年了. -- "已经快是严冬了,榕树的叶子还没落呢--" "榕树是常绿树,是看不到明显的落叶季节的--" "唉--想不到已经七年了呢.榕树还是当年的榕树,你却不是…
[LOJ#2329]「清华集训 2017」我的生命已如风中残烛 试题描述 九条可怜是一个贪玩的女孩子. 这天她在一堵墙钉了 \(n\) 个钉子,第 \(i\) 个钉子的坐标是 \((x_i,y_i)\).接着她又在墙上钉上了 \(m\) 根绳子,绳子的一端是点 \(s_i(sx_i,sy_i)\),绳子经过点 \(t_i(tx_i,ty_i)\),同时绳子的长度是 \(L_i\).其中 \(s_i\) 点是粘在墙上的,而另一个端点是可以移动的.初始情况下绳子是紧绷的一条直线段. 接着,对每一根绳…
[LOJ#2328]「清华集训 2017」避难所 试题描述 "B君啊,你当年的伙伴都不在北京了,为什么你还在北京呢?" "大概是因为出了一些事故吧,否则这道题就不叫避难所了." "唔,那你之后会去哪呢?" "去一个没有冬天的地方." 对于一个正整数 \(n\),我们定义他在 \(b\) 进制下,各个位上的数的乘积为 \(p = F(n, b)\). 比如 \(F(3338, 10) = 216\). 考虑这样一个问题,已知 \…
[LOJ#2327]「清华集训 2017」福若格斯 试题描述 小d是4xx9小游戏高手. 有一天,小d发现了一个很经典的小游戏:跳青蛙. 游戏在一个 \(5\) 个格子的棋盘上进行.在游戏的一开始,最左边的两个格子上各有一个向右的青蛙,最右边的两个格子上各有一个向左的青蛙. 每次移动可以选取一个青蛙,向这只青蛙的前方移动一格到空格子中或跳过前方的一个不同朝向的青蛙并移动到空格子中. 为了使你更好地理解这个游戏,我们下发了一个游戏demo作为参考(注意:这个demo中的棋盘大小和题目中并不相同).…
[LOJ#2326]「清华集训 2017」简单数据结构 试题描述 参加完IOI2018之后就是姚班面试.而你,由于讨厌物理.并且想成为乔布斯一样的创业家,被成功踢回贵系. 转眼,时间的指针被指向2019,大二,12月初,考试周. 你早听学长说,数据结构期中考很难,对竞赛生不友好,集训队选手做不完卷子. 你冷笑.哼,堂堂国际金,这点难度的考试算什么. 两小时,你看完习题解析前五章所有内容,并且倒背如流: 一小时,你看了500页的讲义,并且记忆犹新: 十分钟,你骑车到考场,自信的你只带了一把水笔,虽…
[LOJ#2324]「清华集训 2017」小Y和二叉树 试题描述 小Y是一个心灵手巧的OIer,她有许多二叉树模型. 小Y的二叉树模型中,每个结点都具有一个编号,小Y把她最喜欢的一个二叉树模型挂在了墙上,树根在最上面,左右子树分别在树根的左下方与右下方,且他们也都满足这样的悬挂规则.为了让这个模型更加美观,小Y选择了一种让这棵二叉树的中序遍历序列最小的悬挂方法.所谓中序遍历最小,就是指中序遍历的结点编号序列的字典序最小. 一天,这个模型不小心被掉在了地上,幸运的是,所有结点和边都没摔坏,但是她想…
[LOJ#2323]「清华集训 2017」小Y和地铁 试题描述 小Y是一个爱好旅行的OIer.一天,她来到了一个新的城市.由于不熟悉那里的交通系统,她选择了坐地铁. 她发现每条地铁线路可以看成平面上的一条曲线,不同线路的交点处一定会设有换乘站.通过调查得知,没有线路是环线,也没有线路与自身相交.任意两条不同的线路只会在若干个点上相交,没有重合的部分,且没有三线共点的情况.即,如图所示的情况都是不存在的: 小Y坐着地铁 \(0\) 号线,路上依次经过了 \(n\) 个换乘站.她记下了每个换乘站可以…
Loj #2331. 「清华集训 2017」某位歌姬的故事 IA 是一名会唱歌的女孩子. IOI2018 就要来了,IA 决定给参赛选手们写一首歌,以表达美好的祝愿.这首歌一共有 \(n\) 个音符,第 \(i\) 个音符的音高为 \(h_i\).IA 的音域是 \(A\),她只能唱出 \(1\sim A\) 中的正整数音高.因此 \(1\le h_i\le A\). 在写歌之前,IA 需要确定下这首歌的结构,于是她写下了 \(Q\) 条限制,其中第 \(i\) 条为:编号在 \(l_i\) 到…
Loj #2324. 「清华集训 2017」小 Y 和二叉树 小Y是一个心灵手巧的OIer,她有许多二叉树模型. 小Y的二叉树模型中,每个结点都具有一个编号,小Y把她最喜欢的一个二叉树模型挂在了墙上,树根在最上面,左右子树分别在树根的左下方与右下方,且他们也都满足 这样的悬挂规则.为了让这个模型更加美观,小Y选择了一种让这棵二叉树的中序遍历序列最小的悬挂方法.所谓中序遍历最小,就是指中序遍历的结点编号序列的字典 序最小. 一天,这个模型不小心被掉在了地上,幸运的是,所有结点和边都没摔坏,但是她想…
Loj #2321. 「清华集训 2017」无限之环 曾经有一款流行的游戏,叫做 *Infinity Loop***,先来简单的介绍一下这个游戏: 游戏在一个 \(n \times m\) 的网格状棋盘上进行,其中有些小方格中会有水管,水管可能在方格某些方向的边界的中点有接口,所有水管的粗细都相同,所以如果两个相邻方格的公共边界的中点都有接头,那么可以看作这两个接头互相连接.水管有以下 \(15\) 种形状: 游戏开始时,棋盘中水管可能存在漏水的地方. 形式化地:如果存在某个接头,没有和其它接头…
Loj 2320.「清华集训 2017」生成树计数 题目描述 在一个 \(s\) 个点的图中,存在 \(s-n\) 条边,使图中形成了 \(n\) 个连通块,第 \(i\) 个连通块中有 \(a_i\) 个点. 现在我们需要再连接 \(n-1\) 条边,使该图变成一棵树.对一种连边方案,设原图中第 \(i\) 个连通块连出了 \(d_i\) 条边,那么这棵树 \(T\) 的价值为: \[ \mathrm{val}(T) = \left(\prod_{i=1}^{n} {d_i}^m\right)…
#2325. 「清华集训 2017」小Y和恐怖的奴隶主 内存限制:256 MiB时间限制:2000 ms标准输入输出 题目类型:传统评测方式:文本比较   题目描述 "A fight? Count me in!" 要打架了,算我一个. "Everyone, get in here!" 所有人,都过来! 小Y是一个喜欢玩游戏的OIer.一天,她正在玩一款游戏,要打一个Boss. 虽然这个Boss有 1010010^{100}10​100​​ 点生命值,但它只带了一个随…
[UOJ#340][清华集训2017]小 Y 和恐怖的奴隶主(矩阵快速幂,动态规划) 题面 UOJ 洛谷 题解 考虑如何暴力\(dp\). 设\(f[i][a][b][c]\)表示当前到了第\(i\)次攻击,还剩下的\(1,2,3\)血的奴隶主个数为\(a,b,c\)的概率,每次考虑打到了哪里,做一个转移. 这样子,状态数就是把不超过\(8\)个东西分配到\(3\)个集合中,状态有\(165\)种,再加一个状态记录糊脸上的期望,也就是\(166\)个状态. 直接矩乘优化,那么单次的复杂度就是\(…
这怎么想得到啊......... UOJ #36 题意:求随机一个集合的子集的异或和的$k$次方的期望值,保证答案$ \lt 2^{63},1 \leq k \leq 5$ $ Solution:$ 首先考虑$ k=1$的时候怎么做:如果某位上有$ 1$则有$ \frac{1}{2}$的概率可以取到这一位 $ k=1$时每一位都是独立的,可以直接做 然后考虑$ k=2$时怎么做 如果一个集合中有元素$ a,b$,则产生的贡献为$ a^2+2ab+b^2$ 我们把$ a^2$和$2ab$分开讨论…
为什么你们常数都这么小啊 UOJ #276 题意:在树上找一条链使得|边权平均值$ -k$|尽量小,$ n<=5e4$ $ Solution:$ 首先二分答案$ ans$,即我们需要找一条链使得边权平均值 $\in [-ans,ans]$ 我们分正负两半分开讨论 先假设平均值$ \in (0,ans]$ 将原树点分 统计过根的所有链 将这些链记录长度$len$,边数$sum$,所属子树标号$id$之后按长度排序 添加一条链$(0,0,0)$,则过某点的链一定是某两条不在同一子树的链拼接而成 两条…
首先裂点表示四个方向 一条边上都有插头或者都不有插头,相当于满足流量平衡 最大流 = 插头个数*2时有解 然后求最小费用最大流 黑白染色分别连原点汇点…
题解 我,理解题解,用了一天 我,卡常数,又用了一天 到了最后,我才发现,我有个加法取模,写的是while(c >= MOD) c -= MOD 我把while改成if,时间,少了 六倍. 六倍. 六倍!!!! maya我又用第一次T的代码改掉了while,我第一次T的代码也A了= = 那我,改单位复根,FFT循环展开,分治内部循环展开,为了啥= = 好吧,但是我最后上榜了...LOJ第四的样子.. \(\prod_{i = 1}^{N} d_{i}^{m}\sum_{i = 1}^{N}d_{…
题目描述 你有一个m点生命值的奴隶主,奴隶主受伤未死且当前随从数目不超过k则再召唤一个m点生命值的奴隶主. T次询问,每次询问如果如果对面下出一个n点攻击力的克苏恩,你的英雄期望会受到到多少伤害. 输入 输入第一行包含三个正整数 T,m,k ,T 表示询问组数,m,k 的含义见题目描述. 接下来 T 行,每行包含一个正整数 n ,表示询问进行 n 次攻击后扣减Boss的生命值点数的期望. 输出 输出共 T 行,对于每个询问输出一行一个非负整数,表示该询问的答案对 998244353 取模的结果.…
哇这题剧毒,卡了好久常数才过T_T 设$f(i,s)$为到第$i$轮攻击,怪物状态为$s$时对boss的期望伤害,$sum$为状态$s$所表示的怪物个数,得到朴素的DP方程$f(i,s)=\sum \frac{1}{sum+1}*(f(i+1,s')+[s==s'])$ 状态数只有$C_{8+3}^3=165$个,所以就可以矩乘优化了.再加上一个用于转移的$1$,矩阵大小是$166*166$的,因为多组询问,所以可以先把$2$的所有次幂的矩阵都预处理出来. 然后会发现复杂度是$O(T*166^3…
传送门 树形dp好题啊. 我们用w[i]" role="presentation" style="position: relative;">w[i]w[i]表示以i为根的子树最少可以把在子树外的榕树之心向子树里拉多少距离. 我们令i最大的子树的根为ms" role="presentation" style="position: relative;">msms. 那么有几种情况: 1. size[…
LINK 很好的一道网络里题 首先想插头DP的还是出门左转10分代码吧 然后考虑怎么网络流 首先要保证没有漏水 也就是说每个接口一定要有对应的接口 那么发现每个点只有可能和上下左右四个点产生联通关系 所以不妨对图进行黑白染色 然后把源点连向所有的黑色格子,所有的黑色格子向白色格子连边,所有的白色格子向汇点连边 那么具体怎么处理每个格子的贡献? 把每个格子分成四个点分别表示上下左右 然后我们发现需要转动的只有三种 只有一个接口 有两个接口形成L形 有三个接口 然后考虑一个接口,相反方向连边代价是2…
LINK 思路 首先是考虑怎么设计dp的状态 发现奴隶主的顺序没有影响,只有生命和个数有影响,所以就可以把每个生命值的奴隶主有多少压缩成状态就可以了 然后发现无论是什么时候一个状态到另一个状态的转移都是固定的方式 所以可以预处理转移矩阵用矩阵快速幂进行优化 但是如果在计算的时候暴力\(状态^3\)进行转移会TLE 但是注意到在这个时候有用的状态其实只有一个向量 所以就预处理倍增然后用向量乘矩阵来优化到单次\(logn状态^2\)就可以了 有点卡常 //Author: dream_maker #i…