- 博客(14)
- 收藏
- 关注
原创 近期cf总结(2) 12.18-12.19
这个题目的大致意思是有n个任务 第一次完成某个任务的时候 可以获得经验值a[i] 之后完成这个任务的时候 获得经验值b[i] 在你完成第i个任务的时候 必须保证前i-1个任务已经都完成过 才能开启新任务 你每完成一个任务 减去体力1 一共有k个体力。我从开头开始 如果类似120000 我直接分为1 20000 只要我第一个数字之后加的数不是0 那我直接分 如果后面是0 我一直找 知道我找到第一个不为0的数字为止。再从前往后去找 如果找到的是0 那么1的数量-- 如果找到的是1 那么0的数量--
2023-12-20 11:07:35
141
1
原创 12.17传智杯补题
如何减去同构的情况 找到最小的字符 min 找到最大的字符 max 那么同构的数量为。那么我们先计算总共有多少种 再把同构的情况减掉。n个长度的字符串它有几种组合数?首先它规定字符串里的字符是从a-z。这是一个基本的组合数学的问题。
2023-12-20 11:06:03
56
1
原创 dp总结(仅对于01背包和完全背包进行总结)
dp[2005][2005]是放每一种采药的时候的情况 但是我们用的只需要之前一种采药 将这次采药的情况与前一种进行比较。要么是没采之前的状态 要么是采了这个 然后加上剩余空间还能放下的草药价值 两者去最大值。把有关联的云朵并成一个集合 然后算出这个集合的总价值 最后在换成01背包进行完成。因为小于4的背包部分都事不能将这个草药给装下的 因此在4之后的数字才会有数字。将奇数次放在dp[1][2005] 将偶数次放在dp[0][2005]然后我们第一次采药完成之后我们的背包情况是这样的。
2023-12-15 14:24:29
154
原创 12.4-12.10题目总结
如果此时下标不为1 那么判断是否前后相同 例如AAEE 第二个A读取的时候是已经有1了 但是与之前出现的相连 是符合规则的 那么也能继续遍历。将a[i]-a[j]=i-j转换为a[i]-i=a[j]-j 然后我们用一个map容器去存放这个值即可。如果想用暴力去解 很显然n方的复杂度是一定会超时的 因此这里我们就有一个巧妙的转换。这个题目让我们输出一个矩阵,要求这个输出的矩阵相邻的格的数字不能相邻。输入n个数字 然后寻找a[i]-a[j]=i-j的数字。
2023-12-15 14:24:20
39
原创 近期的数论总结
设m为正整数,若a和b是整数,且m|(a-b),则称a和b模m同余。也就是说,a除以m得到的余数和b除以m的余数相同;或者说,a-b除以m的余数为0我们把a和b模m同余记为举几个例子:18除以7的余数为4,4除以7的余数也为4这边-6除以9的余数不是-6 而是3 为啥?(2)将同余转化为等式若a和b是整数,则当且仅当存在整数k,使得a=b+km例如,有19=7*3-2 此时k为3求解一般形式的,需要用到逆给定整数a,且满足gcd(a,m)=1,称的一个解为a模m的逆,记为例如,
2023-12-04 20:34:44
25
1
原创 11.22原创题总结
U280826 学长的数(1) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)U280869 学长的数(2) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)U271276 小施的不等式 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)U281358 学长的因子 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
2023-11-24 12:05:35
33
1
原创 对于约瑟夫环的一些思考
最近感觉突然出现了很多约瑟夫环的问题,突发奇想想写一下关于这些问题的思考这里我就不去想其他代码下的约瑟夫环的写法 由于最近在学stl 于是就用deque一个双向队列写了一个约瑟夫环的解法 具体代码如下3 1 5 2 4最平常简单的方法就是用普通数组来写 那具体思路是什么呢?假设我有n个数组 然后每隔n个人就让他出列 以此类推 那我们只需要对每个数字标记 出列的数组标记为-1 其他数组为1 然后一直走下去 碰到队伍尾了就重新到头再继续走 直到队伍出列完。
2023-10-20 13:55:32
62
1
原创 关于位运算
事实上位运算对于我自己来讲 它就可以理解为一种二进制的算法吧 它就纯粹的在二进制下的运作相当于说比如当我在执行 类似 x&1的操作时 我要先把左右两边都换成二进制之后 然后开始我接下来的操作 至于中间的这个类似&的符号 是随着题目的变换而变换的 接下来就说一下这些符号的基本含义对于AB, 我们表示把A转化为二进制之后向右移动B位(删除末尾的B位)
2023-10-17 23:07:39
33
1
原创 第五周周记(8.7-8.13)
我们再看这个图 和上面有区别的就i是多有了一些绿色的下标 这个下标就是代表每个节点的下标 我们可以看到 比如最下面一排的那个[4,4]区间的下标是12 而旁边的[2,2]下标是9而不是11 是不是感到有些奇怪 其实10 11这两个下标应该是[3,3]的子节点的两个下标 只不过[3,3]没有子节点罢了 但还是要给他的 这样以后我们可以看出 每个父节点下面两个子节点的两个下标分别为 2*i(左) 和2*i+1(右) 解释这么多 那我们肯定有疑惑了 那我们怎么建树呢?一个城市中有n个人,他们分成不同的帮派。
2023-08-13 18:15:10
59
1
原创 第四周周记(7.31-8.6)
第一天的贪心算法我没有写进里面 我觉得贪心是相对比较简单的一个算法,所以我就没有写进去 那时候的几个习题做的也还可以 之后的二叉树以及几个搜素确实是比较难理解的 对于剪枝还是没能很好理解它的概念和用法 希望下周能抽时间去看一下竞赛书的能容 这周的有些写法也还不是很熟悉 希望继续加油 勉励。
2023-08-06 20:51:59
64
原创 7.24-7.30周记
在开始这周的总结之前,我先把map的取值赋值以及输出写一下(怕自己忘记)这周讲了很多算法 也有一两个算法是我没有完全理解的 我就跟着题目一点点讲自己对于每个算法的理解吧对于排序和排列 我们有很多种方法,常见的老三样:选择排序、插入排序、冒泡排序。这个是我们一开始学习的排序方法,但在数据过大时,很显然,对于O(n^2)的时间复杂度,很容易就超时了,这个时候我们就有另外一些时间复杂度较小的算法降临了:快速排序、归并排序、快速排序....等等。今天我们就着重来讲这三种排序。在讲之前呢,我们先分享一个stl函
2023-07-30 17:15:20
88
1
原创 7.17~7.23周记
由于对折次数仅为10,数据规模并不大,可以通过手算简单的完成。对折0次,得到2根;对折1次,得到2 * 2 - 1 = 3对折2次,得到3 * 2 - 1 = 5对折3次,得到5 * 2 - 1 = 9对折4次,得到9 * 2 - 1 = 17对折5次,得到17 * 2 - 1 = 33对折6次,得到33 * 2 - 1 = 65对折7次,得到65 * 2 - 1 = 129对折8次,得到129 * 2 - 1 = 257对折9次,得到257 * 2 - 1 = 513。
2023-07-23 22:03:31
100
原创 7.16周总结(2023)
这个题目一开始自己做的时候执着于先根据样品多少来进行排序,在有序之后去判断是否样品种类多的那一方拥有样品种类少的那一方的全部样品种类,然后我就一直卡在判断的那个方面,之后去搜了,看了这个比较相对好理解,才发现其实这个题目是可以用打表来做的,是一个比较巧妙的方法。后来发现按照这种方法写的根本写不下去 因此用上面那个(y*k)%(y-k)更为巧妙。这个是我第一次接触打表类的题目,我感觉这个方法对于一些题是一种很巧妙的方法 日后可以多接触这方面的题目。给你n个整数,请按从大到小的顺序输出其中前m大的数。
2023-07-16 11:00:33
132
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人