- 博客(11)
- 收藏
- 关注
原创 博弈问题 之 巴什博弈,威佐夫博弈
下图,方格A中放有一枚棋子,甲先乙后轮流移动这枚棋子,如果每次允许往同一方向上、右或右上)走任意多格,最终将棋子走到方格B的人获胜.请问:(逼对方把我送进蓝色区域,当我的前一步在红色区域时,对方怎么走的下一步都会到达蓝色区域,但他不能一步到达,而我在第三轮可以直接到达。有47个棋子,两人轮流取棋子,每次允许取其中1-3个,谁最后把棋子取完就算获胜.如果你先取,那么第一次你取个,才能保证获胜?若n = k*(m+1) 即n是m+1的整数倍,先手输,因为可以看成k个有m+1个石子的局。
2024-09-03 18:18:05
197
原创 最长上升子序列
边界 r 就是上一次的最大长度, 当找到了l=r=mid时,此时len为max(len, r +1) { r是不算a[i]的那个序列的长度 q[]当前的下标,再加上a[]贡献的长度1.}计算: 就遍历一轮 :对于每一次要求的a[i]看0-i的下标里的小于a[i]的最大长度+1 或者说就是不选的情况max( f[ i ], f [ j ]+1)]轮的最长上升子序列的长度即看a[i]能加在 不看a[i]的最长序列的后面 或者 说不考虑a[i]直接有更好更大的长度。怎么找q[]<a[i]
2024-07-14 17:23:58
243
原创 (1)01背包问题
①选 f [ j - nums [i] ] + 1(上一次的最大长度 + 本轮选择增加长度1)解决:总体积-本轮体积为上一轮总体积 (下标里的值 就-v【i】)从体积为m开始遍历。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。有 N件物品和一个容量是 V 的背包。思路:dp每一次(nums的0-i)的子序列长度分为两种情况。f[i]:表示当target为时的最大子序列长度。第 i 件物品的体积是 vi,价值是 wi。思考:怎样表示当前轮的上一轮?②不选 即为本次f [ j ]
2024-07-12 16:56:07
160
原创 作业二(5.9)(二叉树)
叉树总共有2016个结点,满二叉树总共的结点数为2的n次方-1,n是满二叉树的层数,所以该二叉树满的情况下是2048-1=2047,而2047-2016=31,也就是说,少了31个叶子结点,题目中16个结点只有一个孩子,那就先从16个叶节点上一层的父节点分别拿一个孩子,于是还剩15个结点未处理,15个除以2有余数(那就是多的一个要么导致剩17个只有一个孩子,要么15个只有一个孩子,不可能出现16个只有一个结点的孩子) 31-16是奇数则不存在。B.找指定结点的孩子结点。
2024-05-10 17:45:36
310
原创 高精度 模板
1.处理输入:以string方式输入,用vector数组倒序存放该数(//如果A<B 就用B-A 先输出一个负号就好了。3.用vector C来存放结果 最后遍历输出。2.每一部分有其特定的代码如下附录。算法常用精确算法---高精度。
2024-04-19 16:30:48
374
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人