04 2023 档案

摘要:主要思路:由于根与根之差的绝对值>=1,所以在单位唯一的区间内至多只有一个根。使用零点存在性定理,定义左端点left和right,若f(left)*f(right)<=0,则在区间内必有根,然后再在区间内使用二分来确定根的精度。 代码如下: #include<iostream>#include<cm 阅读全文
posted @ 2023-04-15 15:25 RUI_26 阅读(26) 评论(0) 推荐(0) 编辑
摘要:主要思路:整体思路就是把<num[mid]的元素扔到mid左边,把>num[mid]的元素扔到mid右边,然后用同样的方法对mid左边和右边的序列进行处理。在代码实现上我使用了双指针。 以样例为例: num[0]=4 num[1]=2 num[2]=4 num[3]=5 num[4]=1 mid=n 阅读全文
posted @ 2023-04-12 18:34 RUI_26 阅读(15) 评论(0) 推荐(0) 编辑
摘要:主要思路:由于题干中说明给出的两个序列是单调不降的,所以不需要再对序列进行一个排序。这里其实有一点贪心的意思但不完全是贪心算法。首先把两个序列分别放入两个数组,然后进行各个元素和的遍历。构建一个优先序列pq,优先序列会对里面的元素自动降序排列,每次遍历都判断和是否小于pq 内的最大元素,即pq.to 阅读全文
posted @ 2023-04-12 18:13 RUI_26 阅读(35) 评论(0) 推荐(0) 编辑
摘要:主要思路:因为题目要求内存满后要扔出最先进去的单词,于是就想到用queue。每查找一次要查找的单词是否已在内存内,不在则查找次数+1,把单词放入内存,同时内存大小+1。然后判断此时的内存大小是否超出给定大小,超出则pop,为超出则继续。 代码如下: #include<iostream>#includ 阅读全文
posted @ 2023-04-11 19:23 RUI_26 阅读(69) 评论(0) 推荐(0) 编辑
摘要:主要思路:刚开始是想用数组,但提交后发现RE,于是用map进行了优化。首先定义map<int,map<int,int> >locker 这里要注意两个“>”之间要加个空格。输入数据为1时,第i个柜子的第j个格子放入k,即locker[i][j]=k;为2时就直接输出locker[i][j]。 代码如 阅读全文
posted @ 2023-04-11 19:10 RUI_26 阅读(32) 评论(0) 推荐(0) 编辑
摘要:主要思路:构造一个judge函数,判断是否1-9都出现了。由于三位数范围为123-987,但因为要求三个数字比例为1:2:3,所以在遍历时的范围是123-987/3。遍历范围内的每一个整数x,并判断2x,3x是否满足judge函数,满足则输出这三个数,否则继续遍历。 代码如下: #include<i 阅读全文
posted @ 2023-04-11 18:57 RUI_26 阅读(53) 评论(0) 推荐(0) 编辑
摘要:w1 洛谷T233243主要思路就是计算每一个长度为2的子串出现的次数,计数的同时用数组记录次数,打擂台找到出现次数最多的子串,首字符出现的位置就是数组的下标。最后输出出现最多的子串。 阅读全文
posted @ 2023-04-11 18:45 RUI_26 阅读(9) 评论(0) 推荐(0) 编辑
摘要:#include<bits/stdc++.h>using namespace std;template<typename T>struct DblNode { T data; //链表结点数据 DblNode<T>* lLink, * rLink; //链表前驱、后继指针 DblNode(T val 阅读全文
posted @ 2023-04-11 18:17 RUI_26 阅读(34) 评论(0) 推荐(0) 编辑