12 2023 档案
摘要:原题链接 一道需要把题目理解透彻的题目。一开始,我也是对题目大意似懂非懂。 这里有一个注意点:当父天平一端的子天平平衡时,该父天平一端的weight应该为子天平重量(这将影响父天平平衡的比较!!) 其次,这道题目虽然是树的题目,但并不需要去构建数的结构,这也提醒我们,一道数据结构题目并不一定一定要用
阅读全文
摘要:原题链接 高中信息题就有给你中序遍历和后序遍历让你求前序遍历的题目。这道题就是根据这两个遍历创建出对应的树,然后根据DFS(深度优先搜索)去求出最小路径。 主要代码: #include<bits/stdc++.h> using namespace std; const int Max=10000+1
阅读全文
摘要:原题链接 这道题可以说基本涵盖了树的大部分知识点——树的创建,树的生成,树的删除,树的BFS(宽度优先搜索)。个人认为是学习树时很具有价值的一道题目。 题目意思很好理解,讨论区的题解写的也比本人优秀太多了,这里就不具体分析了。
阅读全文
摘要:原题链接:小球下落 Dropping Balls - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 刚开始学习数据结构中的树。看到这题时第一想法肯定时暴力模拟,由于题目条件给出 1<I<600000,所以最大运算量约为20*6e5=1.2e6.好像也能解(这里就不给出代码了)。 但是
阅读全文
摘要:通过操作获得非递减数列,采用KMP算法求解。 通过把一个数列打印两遍,遍历是否有长度为N的非递减数列或者非递增数列。 通过计算求出最小操作数量。 主要代码: #include<bits/stdc++.h> using namespace std; const int N=200010; int a[
阅读全文
摘要:首先假定已经找到abc符合题目条件。则我们假定a1,a2,a3...;b1,b2,b3...;c1,c2,c3...为abc各个位置上的数字,那么 a1 a2 a3 b1 b2 b3 + c1 c2 c3 x1 x2 x3 又由digsum等式可知a1+b1+c1+...=x1+x2+x3。 那么我
阅读全文
摘要:1、首先,假设我们已知一个k,若其符合题意,那么 第一次移动时可达区间为[-k,k],我们只需判断这个区间和[L1,R1]是否有交区间。然后我们取出这个交区间【left,right】。 接下每次移动,我们都在上一次得到的区间基础上得到新的可移动区间【left-k,right+k】,之后再和【Li,R
阅读全文
摘要:原题链接 复合词 Compound Words - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题我的第一想法是二重循环遍历所有组合,但结合120000的数据量知晓此方法肯定超时。 那么解法二:先用map存储所有的单词,再遍历所有的单词(假如为S),对S进行分解得到Sa和Sb,
阅读全文
摘要:原题链接:Unix Is命令 Unix ls - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 一道格式略微复杂的题目。 首先是注意点: 1、关于列的个数,已知一行共有60个字符,最右边一列有M个字符,其余列有M+2个字符。则列数为(60-M)/(M+2)+1,接着行数也就易得。 2
阅读全文
摘要:这道题很考验思维。 这道题目我们只需要考虑出现次数最多的字符的个数,分两种情况讨论。 1、如果该字符出现次数超过n/2(这里设为x),那么其他字符和该字符凑成一对进行消除,即剩下的长度为2x-n。 2、如果该字符出现次数低于n/2,那么对于任意字符都有足够的其余字符和他凑成一对进行消除,那么就变成了
阅读全文
摘要:一道数据结构题。这题需要用到两个栈分别存储大写字母和小写字母以配合删除操作。 主要代码: #include<bits/stdc++.h> using namespace std; typedef pair<char,int> Pos; int main(){ int n; cin>>n; while
阅读全文
摘要:原题链接The Blocks Problem - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 一道模拟题。(水题) 但模拟过程很有意思,怎么样才能用最短的代码完成所有操作,使代码更简洁是很考验技术的。 #include<bits/stdc++.h> using namespace
阅读全文
摘要:洛谷链接集合栈计算机 The SetStack Computer - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 一道典型的以栈为背景的数据结构题。题目简单但是程序却并不简单(个人观点)。普及组的难度有点低了感觉。 个人认为这道题目可以帮助自己熟悉或者说更好的掌握STL的使用以及妙
阅读全文