总结
文章平均质量分 70
苹果树上有橘子
笑口常开(σ′▽‵)′▽‵)σ
展开
-
01背包,完全背包的区别
文字上的理解:**01背包:**物品只能取一次。**完全背包:**物品不限次。代码上:设:n个物品,每个占t[i]空间,p[i]个价值,共有m容量。01背包核心代码:for(int i=1;i<=n;i++){ for(int t1=m;t1>=t[i];t1--){ f[t1]=max(f[t1],f[t1-t[i]]+p[i]);完全背包核心代码: for(int i=1;i<=n;i++){原创 2022-03-19 17:07:22 · 476 阅读 · 0 评论 -
机器学习实例(预测房价中位数)(附代码)
1、下载数据:下载一个压缩文件housing.tgz即可,其包含housing.csv(已经包含书有数据。),用 tax xzf housing.tgz 来解压提取CSV文件。import osimport tarfileimport urllib.requestDOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/master/"HOUSING_PATH = os.path.join("datasets",原创 2021-11-25 17:02:17 · 2393 阅读 · 1 评论 -
总结(ACM选修课结课总结)!
总结:选修课虽然结课了,但还有很多知识没学,继续前进吧。以下是大致我写的目录:1 、 学到了什么;2、学会了那些;3、掌握了那些、哪些方面有提升。4、自己的感受。开始:一: 这要从头开始说了:一开始讲了 STL上的 比较常用的容器;在之后一直到结课 就是算法的内容了;大致是:贪心算法(基本贪心、背包、两种优先级贪心)、动态规划(线性dp、区间dp、背包问题)、二分三分法、搜索。二:1、首先当然是容器了:栈(stack) 先进后出;队列(queue) 先进先出;优先队列原创 2021-06-18 23:00:19 · 429 阅读 · 1 评论 -
第十一(12)周学习总结。(搜索)
每周学习总结: 第十一周(12).本周学习: 1、递归算法 2、搜索(深度优先搜索 、广度优先搜索) 。一:递归算法:基本概念:( 程序直接或间接调用自身的编程技巧) 直接或间接调用自身的函数称为递归函数它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。基本思想: :层层分解。把一个不能或不好解决的大问题转化为一个或几个小问题,再把这些小问题进一步分解成更小的小问题。如4!=4* 3!;3!=3* 2!;2!=2*1!;最小问题可以直接解决。1原创 2021-05-22 00:14:07 · 224 阅读 · 3 评论 -
第十周(11)学习总结。(二分)
每周学习总结: 第十周(11)。本周学习:二分查找算法;概念:在一个 有序序列 中,定义一个起始位置start(序列第一个元素)和一个终止位置end(序列最后一个元素),通过mid=(start+end)/2计算出中间位置,通过待查找元素与mid中间位置的元素进行比较,如果待查找元素比中间位置mid对应的值小,那么将end = mid -1(即将end结束位置移动到mid中间左边一个位置),如果比中间对应的值大,那么将start = mid + 1 (即将start的位置移动到mid右边一个位置),原创 2021-05-16 10:42:51 · 103 阅读 · 2 评论 -
第九周学习总结。(背包 下)
每周学习总结: 第九周。本周学习:三、多重背包。 四、分组的背包问题。三、多重背包;(物品选有限次。)问题描述: 有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件占空间是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。思路算法: 多重背包中的每种物品的数目有一定的界限n[i] ,每种物品可以放0个,1个…n[i]个。与完全背包类似,定义子结构f[i][v]表示前i种物品恰好装入背包容量是v的最大价值。那么它的状态转移原创 2021-05-08 11:53:11 · 103 阅读 · 1 评论 -
第八周学习总结。(背包)
每周学习总结:第八周。本周学习:动态规划背包问题(四种类型:一、01背包;二、完全背包;三、多重背包;四、分组的背包问题。)(三四 下周总结。)一 、 01背包;(物品选不选,物品只能用一次。)问题描述:有N件物品和一个容量为V的背包。第i件物品的费用(即体积,下同)是w[i],价值是val[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。解题思路:用动态规划的思路,阶段就是“物品的件数”,状态就是“背包剩下的容量”,那么很显然dp[ i , v ] 就设为从前原创 2021-05-02 18:13:24 · 122 阅读 · 0 评论 -
第七周学习总结。
每周学习总结:第七周;本周学习:动态规划:区间dp的(三种模型)。第一种模型:(合并石子)类;含义: 从任意一个位置分成两个区间,如:dp[i][k]、dp[k+1][j];一个是区间由i到k,另外一个为k+1到j;就是从i到j区间中找到一个k使之分为两个区间。例题:在一圆形操场四周摆放N堆石子 , 现要将石子有次序地合并成一堆.规定每次只能选相临的两堆合并成一堆,并将新的一堆的石子数,记为该次合并的代价。编一程序,由文件读入堆数N及每堆石子数,选择一种合并石子的方案,使得做N-1次合并,代价原创 2021-04-24 22:39:25 · 121 阅读 · 1 评论 -
第六周学习总结。
每周学习总结:第六周;本周并没有学太多新的东西,更多的是对线性dp的精进,就是刷题了。所以这次总结主要是我对题目的一些看法和题思路。这一周一共打了4场codeforces ,已经对比赛有了大致的的理解。一: vjudge 的 S题解题思路:题目意思为求n个物品,拿k对使得消耗的体力最少,或者说是这k对物品,每一对中两件物品的质量差平方最小,所以要使得质量差的平方小,只能排序后取质量相邻两个物品作为一对;现在设f[i][j]为前i件物品组成k对所消耗的体力最小;这时分两种情况含有第i件物品和原创 2021-04-17 12:01:40 · 129 阅读 · 2 评论 -
第五周学习总结
每周学习总结:第五周。本周学习:动态规划初步。基本思想:基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个二维数组中。与分治法最大的差别是:适合于用原创 2021-04-10 09:59:17 · 119 阅读 · 1 评论 -
第四周学习总结
每周学习总结: 第四周本周学习:动态规划的简单dp;动态规划的三大步骤;动态规划,就是利用历史记录,来避免我们的重复计算。而这些历史记录,我们得需要一些变量来保存,一般是用一维数组或者二维数组来保存(dp[])。下面是做动态规划题很重要的三个步骤,定义数组元素的含义,我们会用一个数组,来保存历史数组,假设用一维数组 dp[]吧。这个时候有一个非常非常重要的点,就是规定你这个数组元素的含义,例如你的 dp[i] 是代表什么意思?2、 找出数组元素之间的关系式(即状态转移方程),我觉得动态原创 2021-04-03 10:59:59 · 157 阅读 · 1 评论 -
第三周学习总结
每周学习总结:第三周。一: 高精度除法+贪心:vjudge的贪心作业Z题:https://vjudge.net/contest/426531#problem/Z这里就要用到大数除法(高精度除低精度):用减法模拟除法,对被除数的每一位(包含前面的余数)都减去除数,一直减到这一位小于零为止。#include<cstdio>#include<string>char str[1100],ans[1100];int num[3300];int chu(int i) /原创 2021-03-27 10:35:38 · 2226 阅读 · 7 评论 -
第二周学习总结
每周学习总结:第二周。本周学习了 继承的基本语法(class 子类 :继承方式 父类)、继承方式(公共、私有、保护继承三种)、继承中的对象模型(子类会继承父类所有成员,只是父类私有成员被隐藏而已)、继承中构造析构函数顺序(构造函数调用顺序先父后子,析构函数相反)、继承同名成员处理(优先调用子类同名成员,想调用父类需要加父类作用域)、继承同名静态成员处理(访问方式和非静态一样,只不过有两种访问方法:通过对象、类)、多继承语法(class 子类 :继承方式 父类1 , 继承方式 父类2 ,…)、菱形继承问题原创 2021-03-20 10:19:50 · 2132 阅读 · 10 评论 -
第一周学习总结
每周学习总结 : 第一周。因为想看懂老师讲的代码,让上课听讲的压力少一点,多一点反思,所以我把程序设计的课程往后赶了赶,在这一周,我学习了友元、(加号、左移、递增、赋值、关系、函数调用)运算符重载。并且了解了关于stl 的相关知识。对于上课老师讲的内容,各种容器 和 贪心算法 已经了解并且初步运用。这一周之后,我对c++的观念有了改变,以前我以为代码中的运算符、一些关键字所表达的含义以及其本身在代码中是不能改变的。感觉较生硬。解题只需要思路,代码冗长且繁琐。而之后,接触到了运算符重载和仿函数等等,我突原创 2021-03-13 10:53:11 · 2508 阅读 · 9 评论