【UOJ#164】清华集训2015V】的更多相关文章

题目链接 http://uoj.ac/problem/164 题解 神仙线段树题. 首先赋值操作可以等价于减掉正无穷再加上\(x\). 假设某个位置从前到后的操作序列是: \(x_1,x_2,...,x_k\) 那么则有: 当前值就是该序列的最大后缀和,历史最大值就是该序列的最大子段和! 然后如果把最大子段和定义加法,那么就变成了区间加单点查询. 直接线段树维护即可,时间复杂度\(O(n\log n)\). (好吧,其实似乎把赋值看做减去正无穷再加\(x\)似乎是可以被卡爆long long的-…
[UOJ#274][清华集训2016]温暖会指引我们前行 试题描述 寒冬又一次肆虐了北国大地 无情的北风穿透了人们御寒的衣物 可怜虫们在冬夜中发出无助的哀嚎 “冻死宝宝了!” 这时 远处的天边出现了一位火焰之神 “我将赐予你们温暖和希望!” 只见他的身体中喷射出火焰之力 通过坚固的钢铁,传遍了千家万户 这时,只听见人们欢呼 “暖气来啦!” 任务描述 虽然小R住的宿舍楼早已来了暖气,但是由于某些原因,宿舍楼中的某些窗户仍然开着(例如厕所的窗户),这就使得宿舍楼中有一些路上的温度还是很低. 小R的宿…
QwQzcysky真是菜死了,这是我刚上高一的时候坤爷在夏令营讲的,可是今天才切掉…… 想想也神奇,一个2016.11才学会线段树的菜鸡,夏令营的时候居然听过Segment-Tree-Beats? 所以我们来看下这个神奇的Segment-Tree-Beats. 我们维护一个神奇的标记二元组(x,y),在树点上打这个标记表示$val[o]=max(val[o]+x,y)$ 然后我们看一下它是不是可以合并(否则这就是一个没有的东西) merge:merge(Tag[x],Tag[y])=(x1+x2…
题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=4732 (UOJ) http://uoj.ac/problem/268 题解 首先考虑,给定一条路径,如何计算与其相交的所有路径的权值和?显然一条路径和另一条路径相交,当且仅当这条路径的LCA在另一条路径上,或者另一条路径的LCA在这条路径上.那么我们考虑维护两个数组\(a\)和\(b\), 分别表示以某点为LCA的路径权值和以及覆盖这个点但不以该点为LCA的路径权值和,则…
uoj 因为询问是关于一段连续区间内的操作的,所以对操作构建线段树,这里每个点维护若干个不交的区间,每个区间\((l,r,a,b)\)表示区间\([l,r]\)内的数要变成\(ax+b\) 每次把新操作加入线段树中下一个叶子,然后如果某个节点里所有操作都加进去了,就条到父亲,把两个儿子的信息合并到父亲上.这里合并就是把两个区间集合合并成一个,例如两个区间\([a,c]\)和\([b,d](a\le b\le c\le d)\)会合并成\([a,b),[b,c),[c,d]\).合并出来的区间如果…
题意 给定一棵 \(n\) 个点的树,给定 \(k\) ,求 \(|\frac{\sum w(路径长度)}{t(路径边数)}-k|\)的最小值. \(n\leq 5\times 10^5,k\leq 10^{13}\) 分析 看到分数考虑分数规划,二分答案 \(x\),式子转化成 \(-x< \frac{\sum w}{t}-k< x\) 将边权变为 \(w-k\) 消除 \(k\) 的影响.但是不能够直接求最长链.因为是路径,考虑点分治. 二分答案 \(x\) 之后考虑两条路径组合 \((A…
题目链接 稳定婚姻问题:有n个男生n个女生,每个男/女生对每个女/男生有一个不同的喜爱程度.给每个人选择配偶. 若不存在 x,y未匹配,且x喜欢y胜过喜欢x当前的配偶,y喜欢x也胜过y当前的配偶 的完备匹配,则称这是一个稳定匹配. 稳定匹配一定存在,且存在一个\(O(n^2)\)的算法: 任选一个未匹配的男生x,按x的喜爱程度从大到小枚举每个女生,若当前女生没有配偶或喜欢x胜过喜欢当前配偶,则与x匹配.直到所有男生都匹配. 这一题我们用行表示男生,n个数表示女生.喜爱程度为:行更喜欢靠前的数,数…
稳定婚姻问题: 有n个男生,n个女生,所有女生在每个男生眼里有个排名,反之一样. 将男生和女生两两配对,保证不会出现婚姻不稳定的问题. 即A-1,B-2 而A更喜欢2,2更喜欢A. 算法流程: 每次男生向自己未追求过的排名最高女生求婚. 然后每个有追求者的女生在自己现男友和追求者中选择一个最喜欢的接受,然后拒绝其他人. 算法一定可以结束. 因为如果最后有一个男生单身,那他一定把所有女生都追求过一遍,说明没有女生单身,产生矛盾. #include<iostream> #include<cs…
题目链接 UOJ #164 题解 首先,这道题有三种询问:区间加.区间减(减完对\(0\)取\(\max\)).区间修改. 可以用一种标记来表示--标记\((a, b)\)表示把原来的值加上\(a\)后对\(b\)取\(\max\). 那么区间加\(x\)就是\((x, -\infty)\),区间减\(x\)就是\((-x, 0)\), 区间修改就是\((-\infty, x)\). 然后,这道题有两个询问,一个询问当前值,一个询问历史最大值,于是我们打两种不同的标记,分别维护两个询问的答案:\…
UOJ 275. [清华集训2016]组合数问题 组合数 $C_n^m $表示的是从 \(n\) 个物品中选出 \(m\) 个物品的方案数.举个例子,从$ (1,2,3)(1,2,3)$ 三个物品中选择两个物品可以有 \((1,2),(1,3),(2,3)\) 这三种选择方法.根据组合数的定义,我们可以给出计算组合数$ C_m^n$的一般公式: \[ C_n^m=\frac{n!}{m!(n-m)!} \] 其中 \(n!=1×2×⋯×n\).(额外的,当 n=0n=0 时, n!=1n!=1)…
UOJ #269. [清华集训2016]如何优雅地求和 题目链接 给定一个\(m\)次多项式\(f(x)\)的\(m+1\)个点值:\(f(0)\)到\(f(m)\). 然后求: \[ Q(f,n,x) = \sum_{k = 0}^{n}f(k){n\choose k}x^k(1 - x) ^{n - k} \pmod{998244353} \] 考虑一个很巧妙的变化:组合数多项式! 设: \[ f(n)=\sum_{i=0}^m\binom{n}{i}h_i \] 可以这么玩的原因是\(\b…
[UOJ#340][清华集训2017]小 Y 和恐怖的奴隶主(矩阵快速幂,动态规划) 题面 UOJ 洛谷 题解 考虑如何暴力\(dp\). 设\(f[i][a][b][c]\)表示当前到了第\(i\)次攻击,还剩下的\(1,2,3\)血的奴隶主个数为\(a,b,c\)的概率,每次考虑打到了哪里,做一个转移. 这样子,状态数就是把不超过\(8\)个东西分配到\(3\)个集合中,状态有\(165\)种,再加一个状态记录糊脸上的期望,也就是\(166\)个状态. 直接矩乘优化,那么单次的复杂度就是\(…
[清华集训2014]矩阵变换 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/41 Description 给出一个 N 行 M 列的矩阵A, 保证满足以下性质: M>N.    矩阵中每个数都是 [0,N] 中的自然数.    每行中, [1,N] 中每个自然数都恰好出现一次.这意味着每行中 0 恰好出现 M−N 次.    每列中,[1,N] 中每个自然数至多出现一次. 现在我们要在每行中选取一个非零数,…
[UOJ#276][清华集训2016]汽水 试题描述 牛牛来到了一个盛产汽水的国度旅行. 这个国度的地图上有 \(n\) 个城市,这些城市之间用 \(n−1\) 条道路连接,任意两个城市之间,都存在一条路径连接.这些城市生产的汽水有许多不同的风味,在经过道路 \(i\) 时,牛牛会喝掉 \(w_i\) 的汽水.牛牛非常喜欢喝汽水,但过量地饮用汽水是有害健康的,因此,他希望在他旅行的这段时间内,平均每天喝到的汽水的量尽可能地接近给定的一个正整数 \(k\). 同时,牛牛希望他的旅行计划尽可能地有趣…
#274. [清华集训2016]温暖会指引我们前行 题意比较巧妙 裸lct维护最大生成树 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; #define lc t[x].ch[0] #define rc t[x].ch[1] #define pa t[x].fa co…
传送门 分析 清华集训真的不是人做的啊嘤嘤嘤 我们可以考虑按操作时间把每个操作存进线段树里 如果现在点x正好使一个整块区间的右端点则更新代表这个区间的点 我们不难发现一个区间会因为不同的操作被分成若干块,每块对应序列上不同的区间 于是查询时对于每个线段树上区间查询时二分查找当前点在哪一块中即可 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include&…
#38. [清华集训2014]奇数国 思路: 题目中的number与product不想冲: 即为number与product互素: 所以,求phi(product)即可: 除一个数等同于在模的意义下乘以一个数的逆元: 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define maxn 100005…
#164. [清华集训2015]V http://uoj.ac/problem/164 统计 描述 提交 自定义测试 Picks博士观察完金星凌日后,设计了一个复杂的电阻器.为了简化题目,题目中的常数与现实世界有所不同. 这个电阻器内有编号为 1∼n1∼n 的 nn 个独立水箱,水箱呈圆柱形,底面积为 1 m21 m2,每个水箱在顶部和底部各有一个阀门,可以让水以 1 m3/s 的流量通过,每个水箱的上阀门接水龙头,可以无限供应水,下阀门不接东西,可以让水流出.水箱顶部和底部都有一个接口,水的电…
UOJ_274_[清华集训2016]温暖会指引我们前行_LCT 任务描述:http://uoj.ac/problem/274 本题中的字典序不同在于空串的字典序最大. 并且题中要求排序后字典序最大. 因此我们要求的路径一定是最大生成树上的路径. 于是变成了LCT模板题,动态维护最大生成树即可. 注意每次find可能会T,于是我又写了个并查集... 代码: #include <stdio.h> #include <string.h> #include <algorithm>…
题目链接: [清华集训2016]温暖会指引我们前行 题目大意:有$n$个点$m$次操作,每次操作分为三种:1.在$u,v$两点之间连接一条编号为$id$,长度为$l$,温度为$t$的边.2.查询从$u$到$v$的最温暖的路径长度(定义最温暖的路径为将路径上的边按温度从小到大排序后字典序尽可能大).3.将编号为$id$的边长度修改为$l$. 仔细读题发现题目中说的字典序其实就是使路径上的边都尽可能大. 那么最优方案一定就是走最大生成树上的边咯. 用LCT动态维护最大生成树. 当新加入边两端点不连通…
uoj266[清华集训2016]Alice和Bob又在玩游戏(SG函数) uoj 题解时间 考虑如何求出每棵树(子树)的 $ SG $ . 众所周知一个状态的 $ SG $ 是其后继的 $ mex $ . 考虑其后继的 $ SG $ 如何求. 对于将 $ y $ 的贡献计算到其父亲 $ x $ 上. 如果删掉 $ x $ ,后继状态是所有儿子的 $ SG $ 异或, 如果删掉 $ y $ 以内的点,则是用 $ y $ 子树内的所有后继状态异或上 $ x $ 子树内 $ y $ 子树外的部分. 这…
题目描述 小 Y 是一个心灵手巧的 OIer,她有许多二叉树模型. 小 Y 的二叉树模型中,每个结点都具有一个编号,小 Y 把她最喜欢的一个二叉树模型挂在了墙上,树根在最上面,左右子树分别在树根的左下方与右下方,且他们也都满足这样的悬挂规则.为了让这个模型更加美观,小 Y 选择了一种让这棵二叉树的中序遍历序列最小的悬挂方法.所谓中序遍历最小,就是指中序遍历的结点编号序列的字典序最小. 一天,这个模型不小心被掉在了地上,幸运的是,所有结点和边都没摔坏,但是她想不起这个模型原来是怎么悬挂的了,也就是…
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)…
题目分析: 我记得很久以前有人跟我说NOIP2016的题目出了加强版在清华集训中,但这似乎是一道无关的题目? 由于$k$为素数,那么$lucas$定理就可以搬上台面了. 注意到$\binom{i}{j} \equiv 0 {\mod k}$当且仅当将$i$和$j$用$k$进制表示的时候,有一位上的$i<j$. 位数上的计算用数位DP就没错了. 代码: #include<bits/stdc++.h> using namespace std; ; int t,k; long long n,m…
P2260 [清华集训2012]模积和 整除分块+逆元 详细题解移步P2260题解板块 式子可以拆开分别求解,具体见题解 这里主要讲的是整除分块(数论分块)和mod不为素数时如何求逆元 整除分块:求Σ「n/i」(i=1~n),「」表示向下取整 由于「n/i」在某段区间内都有相同的值,所以可以分块算,复杂度O( sqrt(n) ) code: ll res=; ,r;l<=n;l=r+){ r=n/(n/l): res=res+(r-l+)*(n/l);}return res; 当mod是素数时,…
清华集训2016Day4 组合数问题(problem) 用卢卡斯定理可知满足条件即将\(n\)和\(m\)分别用\(k\)进制表示,要求\(n\)的每一位都要大于等于\(m\)的对应位.直接数位\(dp\),设\(f_{i,0/1,0/1}\)表示处理到第\(i\)位,\(n\)是否触上界,\(m\)是否触上界时的方案数.复杂度\(O(t\log_kn)\) . #include<cstdio> #include<algorithm> #include<cstring>…
[UOJ274][清华集训2016]温暖会指引我们前行 任务描述 虽然小R住的宿舍楼早已来了暖气,但是由于某些原因,宿舍楼中的某些窗户仍然开着(例如厕所的窗户),这就使得宿舍楼中有一些路上的温度还是很低. 小R的宿舍楼中有n个地点和一些路,一条路连接了两个地点,小R可以通过这条路从其中任意一个地点到达另外一个地点.但在刚开始,小R还不熟悉宿舍楼中的任何一条路,所以他会慢慢地发现这些路,他在发现一条路时还会知道这条路的温度和长度.每条路的温度都是互不相同的. 小R需要在宿舍楼中活动,每次他都需要从…