uoj#186 【UR #13】Yist】的更多相关文章

题目 orz myy 首先注意到答案有单调性,于是我们可以考虑二分一个\(x\),之后去判断一下每次只使用长度为\(x\)的区间能否删出目标序列 显然我们应该贪心地删除需要删除元素中最小的那一个,感性理解就是先删除最小的能使得接下来删除的限制尽量小 复杂度是\(O(qn^2\log n)\) 再大致理解一下发现我们并不需要二分,对于一个需要删除的元素,需要用到的最大区间长度是可以算出来的:我们搞一个单调栈,处理出每一个需要删除的元素左右两边第一个比它小的不需要删除的\(l_i,r_i\),再减去…
http://uoj.ac/problem/187 每个点只能从时间,b+a,b-a三维都不大于它的点转移过来,将点按时间分成尽量少的一些段,每段内三维同时非严格单调,每段内的点可能因为连续选一段而产生平方的贡献,可以每段开一个单调栈维护斜率优化dp处理. 注意到b-a和b+a同时小于可以推出时间小于,因此可以按b-a升序处理,b+a一维用树状数组维护前缀最值,处理选的点在时间上不连续的情况. #include<bits/stdc++.h> typedef long long i64; ; i…
题目:http://uoj.ac/problem/188 令 \( s(n,j)=\sum\limits_{i=1}^{n}[min_i>=p_j]f(j) \) ,其中 \( min_i \) 表示 i 的最小质因子. 令 \( g(n,j)=\sum\limits_{i=1}^{n}[i \in P or min_i>p_j]1 \) ,其中 P 表示质数集合. \( s(n,j)=s(n,j+1)+s(\frac{n}{p_j},j)+p_j(g(\frac{n}{p_j},cnt)-(…
UOJ小清新题表 题目摘要 UOJ链接 给出一个排列 \(A\) 以及它的一个非空子序列 \(B\),给出一个 \(x\) 并进行若干次操作,每一次操作需要在 \(A\) 中选择一个长度恰好为 \(x\) 的区间并删除它的最小值.如果在操作结束以后剩下的数组恰好是 \(B\),那么就可以得到 \(x\) 分,否则得到 \(0\) 分. 有 \(q\) 组询问,所有的 \(A\) 序列都是一样的,但 \(B\) 序列不同.求每次询问能得到的最大得分. \(B\) 序列是一个 01 串,若该位置上为…
题面 传送门 题解 这是一道语文题 不难看出,题目所求即为\(l\)到\(r\)中每个数的次大质因子 我们考虑\(Min\_25\)筛的过程,设 \[S(n,j)=\sum_{i=1}^nsec_p(i)[min_p(i)\geq P_j]\] 用人话来说的话,就是\(S(n,j)\)表示\(1\)到\(n\)之间所有满足最小值因子大于等于\(P_j\)的\(i\)的次大质因子之和 我们照例把质数和合数的贡献分开考虑.所有质数贡献为\(0\),而对于合数,我们枚举最小质因子\(P_k\).此时分…
Description 给定 \(\sum_{i=l}^r f[i]\) \(f[i]=\) 把 \(i\) 的每一个质因子都从小到大排列成一个序列(\(p_i^{c_i}\)要出现 \(c_i\) 次)后 , 第二大的质因子. 题面 Solution 符合 \(Min25\) 筛的处理顺序. 递归处理每个质因子作为次大值时的贡献,和不作为次大值时贡献的方案数 , 预处理一下区间质数个数就行了. #include<bits/stdc++.h> using namespace std; type…
题目 不是很能看懂题意,其实就是求\([l,r]\)区间内所有数的次大质因子的和 这可真是看起来有点鬼畜啊 这显然不是一个积性函数啊,不要考虑什么特殊的函数了 我们考虑Min_25筛的过程 设\(S(x,y)\)表示\([1,x]\)内的数满足\(minp(i)>=y\)的数的次大质因子的和 还是分成质数合数以及\(1\)来考虑\(S(x,y)\) 质数和\(1\)都没什么贡献,直接考虑合数 还是枚举最小质因子\(P_k\)以及其出现次数\(e\) 考虑从\(S(\frac{x}{P_k^e},…
UOJ 241. [UR #16]破坏发射台 题意:长度为 n 的环,每个点染色,有 m 种颜色,要求相邻相对不能同色,求方案数.(定义两个点相对为去掉这两个点后环能被分成相同大小的两段) 只想到一个奇怪的线性递推,无法写成矩乘的形式... 正解用状态记录了颜色是否相同 奇环,只考虑相邻,确定第一个的颜色,\(f[i][0/1]\)表示i个与第一个不同/同色的方案数 偶环,再考虑相对,分成两段,同时递推\(i,\frac{n}{2}+i\),\(f[i][0..6]\)来表示 构造矩阵讨论好烦啊…
#118. [UR #8]赴京赶考 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/118 Description 高中,高中,短暂的三年.NOI是高中结业考试,而高考在每年暑假举行. 高二暑假,这是你最后一次参加高考的机会.你已经为了高考停课很久了,OI的知识很久没管了.你并没有能力用一年时间补起别人三年的OI课程.这是你的最后一战,如果你失败了,可能就不能工地搬砖只能去清华了. 这天你背上行囊赴京赶考.此时…
#31. [UR #2]猪猪侠再战括号序列 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/31 Description 大家好我是来自百度贴吧的_叫我猪猪侠,英文名叫_CallMeGGBond. 我不曾上过大学,但这不影响我对离散数学.复杂性分析等领域的兴趣:尤其是括号序列理论,一度令我沉浸其中,无法自拔.至于OI算法竞赛,我年轻时确有参加,虽仅获一枚铜牌,但我素性淡泊,毫不在意,毕竟那所谓FFT.仙人掌之类…
题目链接:UOJ - 74 题目分析 题目中,将字符串 S 的第一个字符移到末尾,其他字符向前移动一个位置,f(S) 就从 Hi 变成了 Hi+1. 我们分析一下这个过程:假设第一个字符为 c, (Hi - 26^(n-1) * c) * 26 + c = Hi+1 26 * Hi - Hi+1 = (26^n - 1) * c c = (26 * Hi - Hi+1) * Inv(26^n - 1) 那么每一个 c 都可以直接解出来,由于题目保证有解,所以每一个 c 解出来的一定都是 [0,…
题目:http://uoj.ac/problem/152 orzKPM... 分治,把数字是l~mid的拿出来放在一根柱子上,mid+1~r放在另一根柱子上.如此递归下去,每次递归只是改一下方向,l,r.然后只要处理r-l<=1的情况就可以了. #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <cstdlib> #i…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ23.html 题目传送门 - UOJ#23 题意 给定一个有 n 个节点的仙人掌(可能有重边). 对于所有的 $L(1\leq L\leq n-1)$ ,求出有多少不同的从节点 1 出发的包含 L 条边的简单路径.简单路径是指不重复经过任意一点. $n\leq 10^5$ 题解 首先我们把走一条边看作多项式 $x^1$ ,那么一条长度为 L 的路径就是其路径上的多项式的乘积. 接下来称“环根”为距离节点…
题目链接 http://uoj.ac/problem/192 暑期课第二天 树上问题进阶 具体内容看笔记博客吧 题意 n个节点的树T 边有边权w 求满足(u, v)上所有边权乘积为完全平方数的路径有多少条 看到“所有边权乘积为完全平方数” 想到完全平方数的特殊性 就是分解质因数后 质因数指数都为偶数 然后就想到分解边权质因数+判质路径边权奇偶性 后者由于奇数偶数的和的规律 可以使用抑或 偶就表示为0 奇就表示为一 那么如何存储呢? 状压? 空间之大 状压压不下 所以hash 对每一个要用的质数…
http://uoj.ac/problem/119 可以认为数据基本随机,于是可以直接用线段树维护,对每个询问在线段树上进行剪枝搜索. #include<bits/stdc++.h> typedef long long i64; ],*ip=ib,ob[],*op=ob; int _(){ ; )++ip; )x=x*+*ip++-; return x; } void pr(i64 x){ ],sp=; ;); ; *op++=; } i64 max(i64 a,i64 b){return a…
http://uoj.ac/problem/49 这题二分答案可以做,同时存在另一个直接二分的解法. 考虑对每个点,二分能向左右延伸的最大半径,由于权值范围较大,不能O(1)查询向一侧走指定距离后到达的位置,又由于单调性,可以同时二分左右延伸的长度,如果可行考虑延长较短的一侧,否则缩短较长的一侧. #include<cstdio> typedef long long i64; ; ],*ptr=buf-; template<class T> T R(){ T x=; )++ptr;…
传送门http://uoj.ac/problem/31 大家好我是来自百度贴吧的_叫我猪猪侠,英文名叫_CallMeGGBond. 我不曾上过大学,但这不影响我对离散数学.复杂性分析等领域的兴趣:尤其是括号序列理论,一度令我沉浸其中,无法自拔.至于OI算法竞赛,我年轻时确有参加,虽仅获一枚铜牌,但我素性淡泊,毫不在意,毕竟那所谓FFT.仙人掌之类,只是些雕虫小技罢了,登不上大雅之堂的:只有括号序列才会真正激发我的研究热情. 我曾天真地以为,凭借我的学识与才能,足可以在这世间安身立命:然而直到沦落…
传送门 http://uoj.ac/problem/21 枚举 (调和级数?) $\sum_{i=1}^{n} (a_i / x + a_i \bmod x) =\sum a_i - (\sum_{i=1}^{n} a_i /x) * (x-1)$ 看上去并没有一个很好的办法确定x的取值? 大概只能暴力枚举了. 枚举x的大小,如果用分块加速的方法统计解,复杂度是O(n)+O(n/2)+O(n/3)+O(n/4)+... 累积起来是O(nlogn) 嗯?好像是正解? イミワカナイ #include…
http://uoj.ac/contest/25/problem/180 从前往后对比串A,B 当$A_i,B_i$不相同时找到$B_i$在A中的位置j 若$min{A_1,A_2,A_3......A_{j-1}}<A_j$说明$A_j$无法交换到位置i,就GG惹 否则把$A_j$设为INF 线段树维护区间取min,单点修改 #include<cstdio> #include<iostream> #include<algorithm> using std::ci…
uoj 考虑把那最后一条直线拎出来,并且旋转到和\(y\)轴平行(其他直线同时一起旋转),然后它和其他直线相交形成\(n+1\)个区间,现在要知道这些区间是否处在一个面积有限的区域 可以发现一段在有限区域当且仅当区间的两侧区域都是有限的.所以对线的两侧分开考虑,先考虑左边,如果直线的一个区间旁边的区域有限,那么一定可以找到区间上面一条直线和下面一条直线在所求直线的左侧有交点,这要满足上面直线的斜率大于下面直线,并且他们能覆盖这两条直线与所求直线的交点形成的区间,使得一些连续段区间的左侧为有限区域…
题目 低智选手果然刷不动uoj 首先考虑一下构造一棵树显然是骗你玩的,按位与这个东西越做越小,挂到链的最下面显然不会劣于挂到之前的某一个点下面,所以我们只需要求一个排列使得答案最小就好了 设\(A=\max(a_i)\),发现最优答案不可能要劣于反复对一个数取\(\rm and\)的答案,我们就有了一个\(O(nA)\)的暴力,设\(dp_i\)表示当前的\(\rm and\)和为\(i\),把这个\(i\)变成\(0\)的最小代价 但是有可能最后的\(\rm and\)和也不是\(0\),于是…
题面传送门 一道很神的矩阵树定理+乱搞的题 %%%%%%%%%%%%%%% vfk yyds u1s1 这种题目我是根本想不出来/kk,大概也就 jgh 这样的随机化带师才能想到出来吧 首先看到生成树计数可以很显然地想到矩阵树定理,但是由于此题是根据生成树个数构造合法的解的方案,所以一看就没有什么正经的做法(有提答题内味儿了). 一个很显然的性质是:对于一张图我们可以考虑将其进行边双连通分量缩点,那么最终的生成树个数显然等于所有边双连通分量中生成树的乘积.这就启发我们采用这样一个思想,将原来 \…
UOJ 题面传送门 神仙题. orz czx,czxyyds 首先没有懒癌的狗肯定不会被枪毙,证明显然. 接下来考虑怎样计算一种局面的答案,假设 \(dp_S\) 表示对于有且仅有 \(S\) 中的狗得了懒癌的情况,最少需要多少天才能有狗被枪毙.显然如果 \(|S|=1\),那么 \(dp_S=1\),因为得了懒癌的狗的主人一天就可以知道自己的狗得了懒癌.对于其他情况,我们不妨从一个得了懒癌的狗的情况思考这个问题,假设为狗 \(x\) 的主人,\(x\in S\),那么他会先假设自己的狗没有得懒…
大力水手问禅师:“大师,很多事情都需要用很大力气才能完成,而我在吃了菠菜之后力气很大,于是就导致我现在非常依赖菠菜.我很讨厌我的现状,有没有办法少吃点菠菜甚至不吃菠菜却仍很有力气?” 禅师浅笑,答:“方法很简单,不过若想我教你,你需先下山徒手修路.” 山下是 n 座村庄从 1 到 n 编号,之间没有路相连.禅师给了大力水手一张草图,这张草图里 n 座村庄被 n−1 条双向道路连接,任意一个村庄都可以通过双向道路到达其它所有村庄. 现在大力水手要根据禅师的意思在村庄间修路.禅师规定大力水手需要在 …
题目链接:最强跳蚤 这道题本来不想写博客的--但是鉴于自己犯了低级错误,还是写篇博客记载一下. 一开始我的想法和题解里面的算法而比较类似,也是先分解质因数,然后用质因子是否出现偶数次来判断当前这个数是否是完全平方数-- 然而这样并不能AC,于是我去翻了题解--\(get\)了一个新做法,就是给每个出现过的质因子赋一个\([0,2^{64})\)的随机值,那么判断一个质因子是否出现偶数次就只需要判断异或和是否为零了.算一算可以发现冲突的概率非常小(但是我不会算). 然后--我就愉快的写了一发树分治…
题目大意:给定一棵有根树,边长均为1,对于每一个i,求树上有多少个点对,他们到lca距离的gcd是i.(n<=200,000) 做法:先容斥,求出gcd是i的倍数的点对,考虑长链剖分后从小到大合并计算答案,小的部分先把每个深度的数量变为每个深度的倍数的数量,然后若深度>k,直接到大的里面暴力,若深度<=k,我们在大的里面维护f[i][j]表示深度mod i(1<=i<=k)为j的点数,理论上k取n^0.5时达到最小复杂度O(n^1.5),实际上k比较小的时候常数较小.另外递归…
原文链接www.cnblogs.com/zhouzhendong/p/UOJ370.html 题解 首先易知答案肯定是一条链,因为挂在链的最下面肯定比挂在其他节点上赚. 问题被转化成了从一个集合中不断选数加入到当前序列尾端,使得序列的所有前缀 AND 之和最小. 我们发现,假如加入一个数后可以使序列的 AND 值变小,那么必然不会去加一个使 AND 值不变的. 假设 $v = a_1\ {\rm and} \ a_2 \ {\rm and}\ \cdots \ {\rm and}\ a_n$,先…
原文链接www.cnblogs.com/zhouzhendong/p/UOJ75.html 前言 根本没想到. 题解 首先我们可以考虑一种做法: 找一些图,使得他们各自的生成树个数乘起来等于 k. 那么只要将他们用一条链连起来就得到答案了. 接下来考虑如何得到这些图. 考虑随机生成一个 n 个点的图,它的生成树个数最大是 $n^{n-2}$ . 我们假装一个 n 个点的图的生成树个数是 $[0,n^{n-2}]$ 中的随机数. 假设我们随机生成了 S 个这样的图,如果我们在这 S 个图中随机选择…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ62.html 题解 太久没更博客了,该拯救我的博客了. $$\sum_{1\leq j \leq n} \gcd(i,j) ^{c-d} i^dj^dx_j = b_i\\A_i = i^d x_i, B_i = \frac{b_i}{i^d}, f(x) = x^{c-d}\\f(x) = \sum_{d|x} g(d) \\\begin{eqnarray*}\sum_{1\leq j \leq n}…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ53.html 题意 给定一棵有 n 个节点的树. 每一个点有一个权值. 对于每一个 $i$ 给定三个参数 $a_i,b_i,c_i$ ,从第 $i$ 个点出发下一步能到达的点 x 需要满足以下三个要求之一: 1. x 在 $a_i$ 到 $b_i$ 的简单路径上. 2. x 在 $a_i$ 到 $c_i$ 的简单路径上. 3. x 在 $c_i$ 到 $b_i$ 的简单路径上. 问从任意一个点出发,经过…