首页 > TAG信息列表 > 洛谷

洛谷P1043

[NOIP2003 普及组] 数字游戏 题目描述 丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的,在你面前有一圈整数(一共 \(n\) 个),你要按顺序将其分为 \(m\) 个部分,各部分内的数字相加,相加

C++ 洛谷网站的题

P1000 #include <iostream> using namespace std; int main(int argc, char** argv) { cout<<" ********"<<endl <<" ************"<<endl <<" ####....#.&q

「题解」洛谷 P8511 [Ynoi Easy Round 2021] TEST_68

简要题意:给定带点权树,对每个点求出其子树补中选出两个数异或得到的最大值。 考虑整个树中的最优解是 \(a_x\oplus a_y\),那么除了 \(x\) 和 \(y\) 到根的链上这些点以外,其他的所有点答案都是 \(a_x\oplus a_y\). 这样只需要考虑如何求出一条到根的链的答案。 考虑这样一条链,在 dfs

「题解」洛谷 P8512 [Ynoi Easy Round 2021] TEST_152

有三个维度,序列维,操作维,询问维。 尝试扫描线,枚举一下扫哪个维能做。 或者考虑序列维上有颜色段均摊的性质。 这样不难想到在操作维上从小到大扫描线,或者说对询问维的 \(r\) 作扫描线,用 set 维护序列维上的连续段。 现在将询问 \((l,r)\) 挂在了 \(r\) 上,扫描线扫到 \(r\) 时,要询问

KMP,Trie,&&洛谷P2580

KMP: 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn=1e6+5; 4 char a[maxn],b[maxn],aa[maxn],bb[maxn]; 5 //aa,bb为输入的字符串 6 //为了方便KMP的实现 7 //另开a,b两个字符串为实际操作自符串 8 //b为模式串 9 int nxt[maxn],cx[maxn]; 10 //

题解 洛谷CF633D Fibonacci-ish

注意:这是博客文章的随笔同步版本,原版本(也是原创)请观望https://www.cnblogs.com/ryan1015/articles/16686452.html CF633D Fibonacci-ish 博客食用 这是蒟蒻的第一篇题解 题意: Yash最近迷上了 fibonacci数列,他定义了一种数列叫 fibonacccccci 数列: 这个数列包含至少 \(2\) 个元素

洛谷 P2590 [ZJOI2008]树的统计 题解

树链剖分板子,两次 DFS 预处理之后用线段树维护,问题转化为单点修改,区间查询(求和、最大值),对于询问路径跳到 LCA 上再查询即可。 //P2590 [ZJOI2008]树的统计 #pragma GCC optimize("Ofast") #include <bits/stdc++.h> using namespace std; const int MAXN=500005; int siz[MAXN],fa

OI 回忆录(上)

闲话 之前想写成类似《整型溢出》那种样子的,但是发现自己的文学功底实在太差。而且现在仍然没到我想干什么就能干什么的时间。 那么还是相对随便一点吧。那么只会有比较重要的事件记录下来。 Part 1 第一次听说 OI 是在初一入学时。当时道听途说,知晓了自己所在的班级是信息竞赛班,

洛谷 CF508A Pasha and Pixels 题解

题目传送门 CF传送门 话说这道题咋这么多坑! 具体思路 把全部位置第一次染成黑色的轮次是第几轮,时间复杂度为 \(\varTheta(k)\) ,接着从点 \(1,1\) 一直到点 \(n-1,m-1\) 全部都判断一遍 ,时间复杂度为 \(\varTheta(nm)\) ,总时间复杂度为 \(\varTheta(nm+k)\) 又因为 \(n,m\le 10^3\)

NOIP复习(三)线段树

普通线段树 我的线段树 \(debug\)(记录一下做题时犯的错误): 检查 \(build\) 函数是否调用。\(\to segmentation~fault\) 区间操作 \(ql\) 是否有可能大于 \(qr\to segmentation~fault\)。 结构体中元素初值问题(是否赋初值,懒标记初值是否与题目操作冲突)\(\to\) 输出可能变得极大 动

题解 洛谷 P3915 【树的分解】

1## P3915 树的分解 题目描述      给出\(N\)个点的树和K,问能否把树划分成\(\frac{N}{K}\)个连通块,且每个连通块的点数都是\(K\)。 解题思路 分析样例: 「\(sample1\)」       可被划分为\(1\).\(2\)、\(3\).\(4\)两个大小为\(2\)的连通块。 「\(sample2\)」     

题解 洛谷 P1641 【[SCOI2010]生成字符串】

\(P1641 [SCOI2010]\)生成字符串 前置知识     组合数、坐标轴。 题目描述     以\(n\)个\(1\)和\(m\)个\(0\)组成字符串,求出满足条件「在任意的前\(k\)个字符中,\(1\)的个数不能少于\(0\)的个数」的字符串数量。 解题思路     考虑到题目要求的条件「\(1\)的个数不少

题解 洛谷 P2700 【逐个击破】

\(P2700\) 逐个击破 前置知识     克鲁斯卡尔最小生成树算法 并查集 贪心思想 题目描述     给出一颗带权的树,删除任意条边,求出使得给定的点不连通的最小权值。 解题思路     样例说明:删除权值为\(1\)和\(3\)的边,使得\(1.2.4\)三点不连通,答案为\(1 + 3 = 4\)。   

洛谷 P3810 【模板】三维偏序(陌上花开)

原题链接 第一维直接排序,然后cdq分治+树状数组 对于分治的左右区间,区间内部按照第二维排序(已按第一维排序好了,就算打乱顺序,左右区间整体的第一维的偏序关系也不会受到影响) 然后遍历右区间的元素,把左区间的第二维小于当前元素的加入树状数组,统计答案即可,因为区间内部第二维都是单调

洛谷 P1734 最大约数和(dp)

https://www.luogu.com.cn/problem/P1734 题目描述 选取和不超过 S 的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。 输入格式 输入一个正整数 S。 输出格式 输出最大的约数之和。 输入输出样例 输入 #1复制 11 输出 #1复制 9 说明/提示 【样例说明】 取数字 4 和

洛谷 P1044 [NOIP2003 普及组] 栈(dp)

https://www.luogu.com.cn/problem/P1044 给定一个n,在满足栈的出度入度条件下,求符合条件的permutation数量。 输入 3 输出 5 #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N=2002000,M=2002; const int INF=0x3f3f3f3f; LL f[M][M]; int main

洛谷 P4137 Rmq Problem mex 莫队 + 值域分块

Rmq Problem / mex 题目描述 有一个长度为 \(n\) 的数组 \(\{a_1,a_2,\ldots,a_n\}\)。 \(m\) 次询问,每次询问一个区间内最小没有出现过的自然数。 输入格式 第一行,两个正整数 \(n,m\)。 第二行,\(n\) 个非负整数 \(a_1, a_2, \ldots , a_n\)。 接下来 \(m\) 行,每行两个正整数 \(l,

洛谷 P1123 取数游戏(dfs)

https://www.luogu.com.cn/problem/P1123 题目大意:给定一个n*m的矩阵,问我们从里面怎样取能取到最大的总和? 条件是选了一个数,下次它的八个方向上的数字就不能选了 输入 #1复制 3 4 4 67 75 63 10 29 29 92 14 21 68 71 56 8 67 91 25 2 3 87 70 85 10 3 17 3 3 1 1 1 1 99 1 1 1

[洛谷P5787] 线段树时间分治

题目大意 给 \(n\) 个点 \(m\) 条边,在 \(k\) 时间内,第 \(i\) 条边只在 \([l_i+1,r_i]\) 的时间范围内存在。对于每个 \(i\leq k\),输出 \(i\) 时刻这个图是否是二分图。 题解 因为每条边只在一个范围的时间内存在,我们可以对时间轴建线段树,线段树的每个结点维护一个vector,里面存这个

洛谷 P2582 函数

函数 - 洛谷 可以发现性质 \(g(f^m(x))=f^m(g(x))\) 。 若设左侧 \(x\) 所在环大小为 \(size(x)\) ,右侧 \(g(x)\) 所在环的大小为 \(size(gx)\) 。 可以得到,\(size(gx)\mid size(x)\) 。 这是因为左侧下标呈循环,右侧的值呈循环,若环的大小不满足 \(size(gx)\mid size(x)\) ,必然会出

洛谷-P3388 【模板】割点(割顶)

【模板】割点(割顶) tarjan 学了一下割点,发现就是找 \(low[nex] \ge dfn[now]\) 的点,同时根的话要求有两个分支才能作为割点 搜索的时候如果 \(nex\) 没有被访问过,则直接继续搜,如果访问过,则尝试通过 \(dfn[nex]\) 来松弛自己的 \(low[now]\),因为只考虑当前点能跑到的最上面的点,这与

洛谷 P1162 填涂颜色

题目链接:https://www.luogu.com.cn/problem/P1162 试题分析:本题运用广搜,我们大体思路是这样的: 首先,我们将起始位置放到队尾,然后,在队列不为空的情况下,我们要一直取队首并拓展,寻找与第一个0相连的所有0(也就是圈外的0)并标记。最后在输出时,只要将所有的未被标记的0输出2即可。 注意我

洛谷 P1706 全排列问题

题目链接:https://www.luogu.com.cn/problem/P1706 试题分析:题目要求按照字典序输出自然数 1 到 n 所有不重复的排列,且每一序列中的数字也不重复,我们可以运用搜索,将搜索到的每一个数字标记并存放在一个数组中,最后输出即可。 代码如下:  

洛谷P1972HH的项链 题解

P1972 [SDOI2009] HH的项链 题目描述 HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。 有一天,他突然提出了一个问题:某一段贝壳中,包含了多少

洛谷 P6242 【模板】线段树 3 吉司机线段树 区间取最小值 维护历史最大值和区间和

题目背景 本题是线段树维护区间最值操作与区间历史最值的模板。 题目描述 给出一个长度为 nn 的数列 AA,同时定义一个辅助数组 BB,BB 开始与 AA 完全相同。接下来进行了 mm 次操作,操作有五种类型,按以下格式给出: 1 l r k:对于所有的 i\in[l,r]i∈[l,r],将 A_iAi​ 加上