bzoj 5092: [Lydsy1711月赛]分割序列】的更多相关文章

5092: [Lydsy1711月赛]分割序列 Time Limit: 5 Sec  Memory Limit: 256 MBSubmit: 219  Solved: 100[Submit][Status][Discuss] Description 对于一个长度为n的非负整数序列b_1,b_2,...,b_n,定义这个序列的能量为:f(b)=max{i=0,1,...,n}((b_1 xor b _2 xor...xor b_i)+(b_{i+1} xor b_{i+2} xor...xor b…
[Lydsy1711月赛]分割序列 Time Limit: 5 Sec  Memory Limit: 256 MBSubmit: 213  Solved: 97[Submit][Status][Discuss] Description 对于一个长度为n的非负整数序列b_1,b_2,...,b_n,定义这个序列的能量为:f(b)=max{i=0,1,...,n}((b_1 xor b _2 xor...xor b_i)+(b_{i+1} xor b_{i+2} xor...xor b_n))其中x…
题目链接 \(Description\) \(Solution\) 首先处理\(a_i\)的前缀异或和\(s_i\).那么在对于序列\(a_1,...,a_n\),在\(i\)位置处分开的价值为:\(s_i+s_i\ ^{\wedge}s_n\). 虽然有个加,但依旧可以考虑按位计算.如果\(s_n\)的第\(k\)位为\(1\),那\(s_i\)的第\(k\)位为\(0\)或是\(1\)贡献都是\(2^k\)(贡献即\(s_i+s_i\ ^{\wedge}s_n\)在第\(k\)位上是否为\(…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5092 套路地弄一个前缀异或和,就变成 f[ i ]=max_{j=0}^{i} { s[ j ] + (s[ i ]^s[ j ]) }.再套路地考虑按位贪心. 然后看了题解.按位贪心不是确定 f[ i ] 的这一位是0还是1,而是确定这一位是否给答案贡献 bin[ j ] ! 按位考虑,自己这一位如果是1,则 j 不管取在哪,都只有一种情况,就是向答案贡献 bin[ j ]: 自己这一位…
Description 对于一个长度为n的非负整数序列b_1,b_2,...,b_n,定义这个序列的能量为:f(b)=max{i=0,1,...,n}((b_1 xor b _2 xor...xor b_i)+(b_{i+1} xor b_{i+2} xor...xor b_n))其中xor表示按位异或(XOR),给定一个长度为n的非 负整数序列a_1,a_2,...,a_n,请计算a的每个前缀的能量值. Input 第一行包含一个正整数n(n<=300000),表示序列a的长度. 第二行包含n…
Description 对于一个长度为n的非负整数序列b_1,b_2,...,b_n,定义这个序列的能量为:f(b)=max{i=0,1,...,n}((b_1 xor b_2 xor...xor b_i)+(b_{i+1} xor b_{i+2} xor...xor b_n))其中xor表示按位异或(XOR),给定一个长度为n的非负整数序列a_1,a_2,...,a_n,请计算a的每个前缀的能量值. Input 第一行包含一个正整数n(n<=300000),表示序列a的长度. 第二行包含n个非…
[Lydsy1711月赛]硬盘检测 Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 273  Solved: 75[Submit][Status][Discuss] Description 很久很久以前,小Q买了一个大小为n单元的硬盘,并往里随机写入了n个32位无符号整数.因为时间过去太久,硬 盘上的容量字眼早已模糊不清,小Q也早已忘记了硬盘的容量.小Q记得,n可以被表示成10^k(1<=k<=7)的形式,即 十到一千万.他还记得自己曾经m次随机读…
[Lydsy1711月赛]图的价值 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 245  Solved: 128[Submit][Status][Discuss] Description “简单无向图”是指无重边.无自环的无向图(不一定连通). 一个带标号的图的价值定义为每个点度数的k次方的和. 给定n和k,请计算所有n个点的带标号的简单无向图的价值之和. 因为答案很大,请对998244353取模输出.   Input 第一行包含两个正整数n,…
博主曾更过一篇复杂度为$O( k· \log k)$的多项式做法在这里 惊闻本题有$ O(k)$的神仙做法,说起神仙我就想起了于是就去学习了一波 幂与第二类斯特林数 推导看这里 $$ x^k=\sum_{j=0}^kj!\binom{x}{j}\begin{Bmatrix}k\\j\end{Bmatrix}$$ $$ \begin{Bmatrix}k\\j\end{Bmatrix}=\frac{1}{j!}\sum_{i=0}^ji^k\binom{j}{i}(-1)^{j-i}$$ 以上是两个…
第二类斯特林数模版题 需要一些组合数的小$ trick$ upd:这里更新了本题巧妙的$ O(k)$做法,虽然常数很大就是了 传送门:here 题意:求所有$ n$个节点的无重边自环图的价值和,定义一张图的价值为每个点度数的$ k$次方和,点有标号 $ Solution$ 显然每个节点的贡献是独立的 枚举每个节点的度数,和这个点不联通的边可连可不连 $ ans=n*2^{\frac{(n-1)(n-2)}{2}}\ \ \sum\limits_{i=0}^{n-1}i^kC_{n-1}^i$ 我…
题意 \(n​\) 个点的有向图,边权 \(\in \{1, 2, 3, 4\}​\) ,\(m​\) 次修改边权/加边/删边,\(q​\) 次询问:以 \(s_i​\) 为起点,输出它到其他点的最短路. \(n ≤ 5 \times 10^2 ,m \le 5 \times 10^4 , q \le 5 \times 10^3\) 题解 这图很密,如果修改就做一遍 \(Dijsktra\) 是 \(O((n + m) \log n)\) 的复杂度,显然是过不去的. 但是发现边权似乎不大,我们考…
题目链接 对于单独一个点,我们枚举它的度数(有多少条边)来计算它的贡献:\[\sum_{i=0}^{n-1}i^kC_{n-1}^i2^{\frac{(n-2)(n-1)}{2}}\] 每个点是一样的,所以\[Ans=n\cdot 2^{\frac{(n-2)(n-1)}{2}}\sum_{i=0}^{n-1}C_{n-1}^ii^k\] 考虑如何计算\(\sum_{i=0}^{n-1}C_{n-1}^ii^k\). 然后...dalao看到\(i^k\)就想起了第二类斯特林数: \(S(n,m…
Description 小Q的工作是采摘花园里的苹果.在花园中有n棵苹果树以及m条双向道路,苹果树编号依次为1到n,每条道路的两端连接着两棵不同的苹果树.假设第i棵苹果树连接着d_i条道路.小Q将会按照以下方式去采摘苹果: 1.小Q随机移动到一棵苹果树下,移动到第i棵苹果树下的概率为d_i/(2m),但不在此采摘. 2.等概率随机选择一条与当前苹果树相连的一条道路,移动到另一棵苹果树下. 3.假设当前位于第i棵苹果树下,则他会采摘a_i个苹果,多次经过同一棵苹果树下会重复采摘. 4.重复第2和3…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5093 不要见到组合数就拆! 枚举每个点的度数,则答案为 \( n*\sum\limits_{i=0}^{n-1}C_{n-1}^{i}*2^{C_{n-1}^{2}}*i^{k} \) (又是那个公式:\( x^{n}=\sum\limits_{k=0}^{n}C_{x}^{k}*(k!)*S(n,k) \)) \( = n*2^{C_{n-1}^{2}}\sum\limits_{i=0}…
定义有向图的价值为图中每一个点的度数的 \(k\) 次方之和. 求:对于 \(n\) 个点的无向图所有可能情况的图的价值之和. 遇到这种题,八成是每个点单独算贡献,然后累加起来. 我们可以枚举一个点的度数是多少,然后试着去算该情况下的贡献,即 \(\sum_{i=0}^{n-1}\binom{n-1}{i}i^k\) 由于一共有 \(n\) 个点,而除了我们限定的边之外其余的边都是可以随便连的. 故 \(Ans=n\times 2^{\frac{(n-1)(n-2)}{2}}\times \su…
5090: [Lydsy1711月赛]组题 Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 785  Solved: 186[Submit][Status][Discuss] Description 著名出题人小Q的备忘录上共有n道可以出的题目,按照顺序依次编号为1到n,其中第i道题目的难度系数被小Q估计 为a_i,难度系数越高,题目越难,负数表示这道题目非常简单.小Q现在要出一套难题,他决定从备忘录中选取编 号连续的若干道题目,使得平均难度系数最高…
5091: [Lydsy1711月赛]摘苹果 Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 214  Solved: 163[Submit][Status][Discuss] Description 小Q的工作是采摘花园里的苹果.在花园中有n棵苹果树以及m条双向道路,苹果树编号依次为1到n,每条道路的两 端连接着两棵不同的苹果树.假设第i棵苹果树连接着d_i条道路.小Q将会按照以下方式去采摘苹果: 1.小Q随机移动到一棵苹果树下,移动到第i棵苹果树…
[Lydsy1711月赛]摘苹果 Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 174  Solved: 135[Submit][Status][Discuss] Description 小Q的工作是采摘花园里的苹果.在花园中有n棵苹果树以及m条双向道路,苹果树编号依次为1到n,每条道路的两 端连接着两棵不同的苹果树.假设第i棵苹果树连接着d_i条道路.小Q将会按照以下方式去采摘苹果:   1.小Q随机移动到一棵苹果树下,移动到第i棵苹果树下的概率…
BZOJ5091: [Lydsy1711月赛]摘苹果 https://lydsy.com/JudgeOnline/problem.php?id=5091 分析: 点\(x\)第\(1\)次选中的概率是\(\frac{d_x}{2m}\) 第\(2\)次被选中的概率是\(\sum\limits_y \frac{d_y}{2m}\times \frac{1}{d_y}\)=\(\frac{d_x}{2m}\). = = 代码: #include <cstdio> #include <cstr…
KMP 重点:失配nxtnxtnxt数组 意义:nxt[i]nxt[i]nxt[i]表示在[0,i−1][0,i-1][0,i−1]内最长相同前后缀的长度 图示: 此时nxt[i]=jnxt[i]=jnxt[i]=j,即指向最长相同前后缀的后一位置,数值上是最长相同钱后缀的长度 求法:假设我们已知nxt[i−1]nxt[i-1]nxt[i−1],想要求nxt[i]nxt[i]nxt[i] 当str(nxt[i−1])=str(i−1)str(nxt[i-1])=str(i-1)str(nxt[i…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5092 首先,处理出异或前缀和 s[i],i 位置的答案就是 s[j] + s[j]^s[i],j <= i 异或的套路是按位考虑,但是这里有加法...怎么考虑进位? 所以就不能考虑答案的这一位是什么,而应该考虑在这一位上的贡献,那么即使进位了,还是各位算各位的贡献,互相独立: 然后发现,如果 s[i] 在第 k 位上是1,那么 s[j] 的第 k 位无论是0还是1,总体的贡献都是 1<&…
[Lydsy1704月赛]序列操作 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 203  Solved: 69[Submit][Status][Discuss] Description 给定一个长度为 n 的非负整数序列 a_1,a_2,...a_n .你可以使用一种操作:选择在序列中连续的两个正整数, 并使它们分别减一.当你不能继续操作时游戏结束,而你的得分等于你使用的操作次数.你的任务是计算可能的最小 得分和最大得分.   Input 第一行…
传送门 因为区间 gcd 的变换不会超过 log 个,所以我们可以暴力枚举区间起点,复杂度是 n*logn 的 #include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<=b;++i) #define fd(i,a,b) for(int i=a;i>=b;--i) ,mod=; template <typename T> bool check_Max(T &x,…
Splay 还是splay序列维护,这题我WA了的原因是:在Push_up的时候,当前子树的max我是直接取的L.R和v[x]的最大值,但是如果没有左/右儿子,默认是会访问0号结点的mx值,而这个值没有初始化成-INF,所以就会导致所有负max值全部变为0…… /************************************************************** Problem: 1251 User: Tunix Language: C++ Result: Accepte…
这个和 bzoj 5469 几乎是同一道题,但是这里给出另一种做法. 你发现你要求的是一个树上 LIS,而序列上的 LIS 有一个特别神奇的 $O(n\log n) $ 做法. 就是维护一个单调递增的栈,如果发现新加元素大于栈顶,则直接加入,否则在序列中二分出一个大于等于该元素的最小值,然后替换掉. 这个单调栈维护的并不是 LIS,而是 LIS 中每个长度的最小结尾数值. 这个拓展到树上同理,你发现儿子之间互不影响,所以可以直接合并. 然后,再用当前节点的值去替换一个大于等于这个值的最小值. c…
http://www.lydsy.com/JudgeOnline/problem.php?id=1049 题意:给一个长度为n的整数序列.把它变成一个单调严格上升的序列.但是不希望改变过多的数,也不希望改变的幅度太大.1. 询问最少需要改变多少个数. 2. 在1的条件下每个数改变的绝对值之和的最小值.(n<=35000, 数据随机) #include <cstdio> #include <cstring> #include <cmath> #include <…
http://www.lydsy.com/JudgeOnline/problem.php?id=2209 splay又犯逗........upd1那里的sum忘记赋值反............. 本题好神..首先发现将所有能匹配的消掉后一定是类似这样的))))((((,当然也有((((((这种情况 还有本题将查询的区间长度都看做偶数..... 如果能知道有多少个)和多少个(,那么答案就是 )的个数除以2取上界+(的个数除以2取上界 很简单吧...... 所以我们只需要在splay维护从左边剩余的…
题目链接:BZOJ 1044 第一问是一个十分显然的二分,贪心Check(),很容易就能求出最小的最大长度 Len . 第二问求方案总数,使用 DP 求解. 使用前缀和,令 Sum[i] 为前 i 根木棍的长度和. 令 f[i][j] 为前 i 根木棍中切 j 刀,并且满足最长长度不超过 j 的方案数,那么: 状态转移方程: f[i][j] = Σ f[k][j-1] ((1 <= k <= i-1) &&  (Sum[i] - Sum[k] <= Len)) 这样的空间…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1798 [题意] 给定一个序列,要求提供区间乘/加,以及区间求和的操作 [思路] 线段树+传标. 下传标记的方式可以类比这里 click here [代码] #include<set> #include<cmath> #include<queue> #include<vector> #include<cstdio> #include&l…
1046: [HAOI2007]上升序列 题意:给定S={a1,a2,a3,…,an}问是否存在P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ax2 < … < axm),若存在多组符合长度为m的递增子序列,则输出以序号字典序最小的:并非是数值 Sample Input 6 3 4 1 2 3 6 3 6 4 5 Sample Output Impossible 1 2 3 6 Impossible 数据范围 N&…