02 2020 档案
摘要:完全背包就是一个物品可以无限次使用。 具体可以看01背包,完全背包就是状态计算的集合的划分不一样,状态表示和01背包是基本相似的,这里怎么划分呢,比如每件物品可以拿k次,如果0次的话就相当于不拿第i件,那就是f[i-1][j],大于0件的话就可以表示为f[i-1][j-k*v[i]]+k*w[i],
阅读全文
摘要:初学者学DP的时候都会接触到背包问题吧哈哈,我理解起来是真的费劲不过坚持就是胜利,让我们一起来学习吧! 首先我看过y总的课,Acwing.com y总背包讲的很好,其中他提供给我了一种去分析动态规划的一种思考方式,我觉得很好。 我们要考虑一道题中,他的状态表示,和状态表达。 而状态表示中,又分为他的
阅读全文
摘要:现在知道中序,后序,则再后序遍历中最后一个为根节点,然后我们要求的为前序遍历,先输出根节点,然后在中序遍历中找到第一个根节点,会将中序遍历分为两大部分,就是左右两棵子树。 再对应的除去第一个根节点后,在后序遍历中根据中序遍历分的两个子树,分别对应后序遍历的部分,再在后序遍历中寻找到下一个根节点再继续
阅读全文
摘要:思路: 先把地图二维字符数组存进去之后,遍历寻找到一个‘y’,然后我们可以设置一个八个方向的方向数组,让‘y’的坐标,遍历加上方向坐标,找到’i‘然后沿着这个方向,dfs下去,每次寻找到正确的,然后建立一个结构体存下点的坐标,然后设置bool数组标记坐标位置,最后再遍历输出,当bool数组为true
阅读全文
摘要:在洛谷看到这么一道题 题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1 次合并之后, 就只剩下一堆了。多多在合并果子时
阅读全文
摘要:我们创建工程后总会自带一个HelloWorld类,短短的几行代码就出来了一个游戏的雏形,请问我们真的理解它了吗?如果我们能早一点弄明白这几行代码,我们或许会比现在走得更远。 理解HelloWorld类 HelloWorld去掉退出按钮只有下面三个函数。 static cocos2d::Scene*
阅读全文
摘要:首先你得下载好cococs2dx,还有python2.x版本,还有vs2017 然后cmd在你Cocos2dx的路径下输入 python setup.py 然后你就回车回车回车 然后重新打开cmd 这串代输入进去 cocos new -l cpp -p com.gamefromscratch.gam
阅读全文
摘要:堆排序,一种全新的排序方式,运用了完全二叉树存数据。 假设根是u,那么左儿子就是u*2,右儿子是u*2+1. 用一维数组手撸一个堆排序。 1,如何插入一个数。heap[++size] = x; up(size); 2,求集合中的最小值。heap[1]; 3,删除最小值。heap[1] = heap[
阅读全文
摘要:1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时
阅读全文
摘要:首先并查集有俩个操作: 1.合并两个集合 2.查找2个元素是否属于一个集合。 我们这里可以用树来存集合。 我们定义p[x]=x是根节点 然后每个p[x]存的是父节点的编号。 如何求元素对应集合的编号呢 if(p[x]!=x) x=p[x]; 怎么合并两个集合p[x],p[y]呢 我们就令 p[x]=
阅读全文
摘要:这真的只是一道规律题 我找到规律了但是因为数据太大了我超时了 我们现在来看一下这道题 牛牛战队的三个队员在训练之余会自己口胡了一些题当做平时的益智游戏。有一天牛可乐想出了一个小游戏给另外两名队员玩,游戏规则如下: 初始一共有n张卡牌 先手第一步最少要拿1张牌,最多要拿n−1张牌。 接下来每一步,双方
阅读全文
摘要:看题之前异或是啥呢? 异或就是: 参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。 即: 0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0 按位异或的3个特点: (1) 0^0=0,0^1=1 0异或任何数=任何数 (2) 1^0=1,1^1=0 1异或任何数-
阅读全文
摘要:刚开始以为就是一个前缀和加双指针,遍历一下就好了 刚开始的思路就搞一个S数组然后把输入进去的数组前i位相乘的到S[i]数组,然后当i>=k了的时候S[i]/a[i-k],然后代码写完提交发现我没有考虑0的情况。 然后等题解出来发现原来还有逆元这种骚东西。不愧是我,小菜鸡。还是太菜了啥都不知道。 具体
阅读全文
摘要:乘法逆元是用来: 定义: 若a*x≡1(mod b),且a与b互质,我们定义x是a的逆元,记为a^(-1),所以也可以说x是a在mod b意义下的倒数 所以对于a/b(mod p),我们可以先求出b在mod p下的逆元,然后乘a再mod p就是这个分数的值了 1.拓展欧几里得求逆元 #include
阅读全文
摘要:前提:知道普通欧几里得算法(辗转相除法)。 #include<bits/stdc++.h> using namespace std; long long x, y;//目前方程真正的解 void exgcd(long long a, long long b) { //当前目的:求解 ax + by
阅读全文
摘要:辗转相除法是用来计算两个整数的最大公约数。假设两个整数为a和b,他们的公约数可以表示为gcd(a,b)。如果gcd(a,b) = c,则必然a = mc和b = nc。a除以b得商和余数,余数r可以表示为r = a - bk,k这里是系数。因为c为 a和b的最大公约数,所以c也一定是r的最大公约数,
阅读全文

浙公网安备 33010602011771号