思路 考虑 \(DP\) 转移,设 \(F[i]\) 表示长度为 \(i\) 序列的期望分数。 得到如下转移: \(F[i]=(F[i-1]-A[i-1]+A[i])p_i+F[i-1](1-p_i)\) 其中 \(A[i]\) 的意义是:以 \(i\) 位 \(1\) 结尾极长连续段的立方贡献的期望分数。 再设 \(B[i]\) 为以 \(i\) 位 \(1\) 结尾极长连续段的平方
洛谷P6812 对于题目的区间加法明显可以用线段树或树状数组进行 并且由题可得,先辈序列即为不下降序列,需满足ai<aj&&i<j 判断一个序列是否为先辈我们比较的是一个元素和前一个元素的大小关系。所以我们可以将原序列进行一次差分来对比其是否为先辈序列。 如果差分后的序列中的某个元
洛谷题面传送门 像极了我验的那道牛客多校(第六场 C Forest)…… 考虑对于每条边,计算其在最大生成基环森林中的概率,乘以边权求和就是答案。现在问题在于如何计算每条边在最大生成基环森林中的概率,显然比它权值小(如果权值相同则比较编号)的那些边存不存在不影响这条边是否在最大生成基
AC自动机的板子 感觉非常合理,但是又不会证明,就先这样吧 感觉还有至少三个问题: 1、为什么要在空的子结点上连自己的fail结点的对应子结点(注释1) 2、为什么u结点不需要参与转移(注释2) 3、为什么遇到end == -1就可以break(注释3) #include<bits/stdc++.h> using namespace std; #define
洛谷题面传送门 一道思维难度为 \(<\epsilon\) 的题。 首先先考虑单组询问的情况。有个究极暴力的做法,\(dp_{i,x,y,z}\) 表示 \(i\) 子树内三种颜色个数分别为 \(x,y,z\) 的连通块个数,转移相当于合并两个连通块,只能 \(O((na+1)^2(nb+1)^2(nc+1)^2)\) 地进行,因此单组询问复杂度 \(n
洛谷题面传送门 首先点分治,对于重心为 \(x\) 的连通块,我们用主席树维护出 \(x\) 到连通块内每个点所组成的数,具体来说,主席树上下标为 \(1\) 的位置存储将权值转成 \(n\) 进制后 \(n^1\) 位上的值,下标为 \(2,3,\cdots,n\) 位上的值同理。这样显然我们可以通过主席树上二分在 \(\log
前言 那个 Atcoder Beginner 263 的 E 还真是恶心…… 呃,我什么也没说,我什么也没说…… 正文 题意 有个 $ n \times m $ 的矩阵,从里面选 $ r $ 行 $ c $ 列出来。 问这 $ r $ 行 $ c $ 列的交叉点“相邻元素的差”的和最少为多少。 $ 60 pts $ 思路 直接暴力枚举。 先枚举 $ r $,再
洛谷P1203 坏掉的项链 首先看到这题的数据样例,3<=n<=350,不是水水暴搜就过了嘛 不难想到暴力解,先破环成链 因为可能有全部都可换成一种颜色的情况,考虑每次遇到s[i]==s[i+1]的情况,直接跳过, 如果最后结局ans仍为初始值(推荐-1),直接输出项链大小n,否则判断当前节点是否为white,如果是white
我寻思着拿两个指针一扫不就得了? 首先把特殊贡献奖和科技创新奖排好序,再用指针寻找两个序列中编号相同的,最后输出。 时间复杂度大概为O(2*n*log(n)+2n) 因为排序打乱了原先科技创新奖获奖名单中的先后次序,所以我们要记录好每一个获得科技创新奖的人的编号的位置,并记录好原科
模板~昨天打组队被ds和计算几何卡了 今天是学习它们的day1(该不会每一天都是day1吧 存个模板.jpg tips.主席树空间大概开30比较稳,然后爆了的话试试25左右 #include<bits/stdc++.h> using namespace std; const int N=int(1e6)+6; int rt[N*30],a[N]; struct persis_seg_tree{
题目简述 第一问:给定一个大小为\(n\times m\)的网格,每个网格上有一张桌子,求最少去掉多少张桌子才能满足 $\forall (i,j) $ , $ (i', j'),|i - i'|\leq 1$ 且 \(|j - j'|\leq 1\) 。 第二问:在保证撤去桌子最少的前提下,最大化剩余每张桌子到距离它最远的桌子的距离之和。这里距离指
搭配购买这一题很适合刚学并查集的同学练习。 这一题思路是:并查集 01背包 并查集:将搭配购买的云用并查集来连接, 并将连接起来的一坨云看做一个物品,再用01背包思路,就可以解决喽。 个人认为的难点是:如何用并查集和怎样存储云的价值和价钱,还有怎么将云的价值和云的价钱合并。
目录【LGR-113】洛谷 7 月普及组月赛 & JROI R6ABCD 【LGR-113】洛谷 7 月普及组月赛 & JROI R6 因为太菜了所以只能做做普及组的题目这档事。 但正常的普及组比赛肯定也不会出现这么多序列的题吧。我还不会做(悲)。 传送门 A 本题仅需要知道二个性质:相邻两个数的最大公约数为 \(1\)
首先它是个差分约束系统,要求变量总和最小就跑最长路。 但是它边权只有 \(0\) 或 \(1\),考虑这个图有什么特殊性质。 先缩点,每个 SCC 内部如果出现了一条 \(u\) 到 \(v\) 的边权为 \(1\),根据 SCC 的定义,一定还存在一条 \(v\) 到 \(u\) 的路径,由于边权 \(\geq 0\),所以一定会出现一个
CSPJS的第一年,也是C++洛谷初赛题解CSPJ部分的最后一期,那就是2019年。这期会对C++洛谷初赛题解专栏内容做出一些调整。 第一题 题目与选项: 中国的国家顶级域名是() A. .cn B. .ch C. chn D. china 答案与解析: A 典型的国家顶级域名有.cn (中国)、.us (美国)、.uk(英国)、.jp (日本)
洛谷传送门 POJ 传送门 一眼点分治。 当递归到结点 \(u\) 时,计算出子结点 \(v\) 的子树内,所有结点和 \(u\) 的距离。然后与之前的合并并计算答案即可。使用树状数组,时间复杂度 \(O(n \log n \log k)\),空间复杂度 \(O(n + k)\)。 code /* p_b_p_b txdy AThousandSuns txdy Wu_Ren
原题 题目分析 这道题数据特别大,10000不够。所以我用的是char win[62500]。 每次算完后要清零。 示例代码 #include<iostream> using namespace std; char win[62500]; int main(){ int w,l; for(int i=0;;++i){ cin>>win[i]; if(win[i]=='E')break
题目传送门:https://www.luogu.com.cn/problem/P3369 模板: 1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<iostream> 5 using namespace std; 6 const int MAXN = 100005; 7 const int MOD = 2147483647; 8
这个题提供给了我们一个比较新颖的思考方向: 发现由所有的和可以组成这样的 \(n\) 个偏序集: \[\{a_1+b_1,a_1+b_2 \dots a_1+b_n\} \]\[\{a_2+b_1,a_2+b_2 \dots a_2+b_n\} \]\[\dots \]\[\{a_n+b_1,a_n+b_2 \dots a_n+b_n\} \]然后我们可以考虑把每个偏序集中最小的元素加入一
【模板】轻重链剖分/树链剖分 题目描述 如题,已知一棵包含 \(N\) 个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 1 x y z,表示将树从 \(x\) 到 \(y\) 结点最短路径上所有节点的值都加上 \(z\)。 2 x y,表示求树从 \(x\) 到 \(y\) 结点最短路径上所有节点的值之和
传送门: Cow Confinement 思路: 先考虑一个更简单的问题,如果没有围栏的限制,只有花和牛。对于这个简化的问题,由于牛只可以向 x 或 y 增大的方向移动,所以我们可以用一条平行于 x 轴的扫描线,按 y 轴从大到小扫描: 如果遇到花,就在数状数组对应位置权值加 1 如果遇到牛,查询 [x, inf] 区间上
玩具装箱 dp + 斜率优化 \(dp[i]\) 表示前 \(i\) 个物品的最小代价,\(pre[i]\) 代表前 \(i\) 个物品的长度前缀和 设 \(x = pre[i] - pre[j] + i - j - 1 - L\),容易看出状态转移方程: \[dp[i] = \min_{j=1}^{i-1}(dp[j] + x ^ 2) \]显然是一个 \(O(n^2)\) 的算法 可以设 \(x_i = pre
题目:矩阵取数游戏P1005 [NOIP2007 提高组] 矩阵取数游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题没啥好说的 区间dp+高精 懒人的话也可以写int128(比如本蒟蒻QAQ) 状态转移方程为f[i][j]=max(2f[i+1][j]+2a[i],2f[i][j-1]+2a[j]) I'll speak no more nonsense. 代码: (
题目:P2037 电话号码 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 我服了 鄙人看到这是一道绿题,开心地点了进去。 然后惊奇地发现 这**根本就是道蓝题啊,我******* 真不知道洛谷干什么吃的 终于,三天后,本蒟蒻完成了这道题(本就不富裕的发量雪上加霜QAQ) 这道题其实可以把每个号码的
题解 洛谷P3620 数据备份 题目传送门 转化题意: 不难想到,选的电缆连接的肯定是相邻的两个点。 这样的话,我们直接把点去掉,取而代之的是 \(n-1\) 条边,在其中选 \(k\) 个互不相邻的边使总长度最小。 那么不妨试试,先把所有边放进小根堆里,每次取出堆顶,只要堆顶相邻的边没被选过,就加进答