- 博客(11)
- 收藏
- 关注
原创 2021-08-02七月学习总结
七月学习总结这一段时间学习有一点荒废,并没有学太多。只是重新复习了一遍老师之前在学校讲的知识点。看了看老师推荐的《算法竞赛:从入门到进阶》。这本书讲的很好,我学到了很多知识,如:c语言关于文件打开的方式:FILE *fp = freopen("文件地址和文件名","打开方式");fp是FILE类型的指针还可以写成:freopen("文件地址和文件名","打开方式",stdin(标准输入流)(stdout(标准输出流)));其他和c++差不多就是fstream改成freopen打开方式的写
2021-08-02 18:03:07 54
原创 2021-05-22学习总结9
2021-05-22学习总结9二分法(二分查找)二分查找利用一分为二的思想,在区间[a,b]中寻找其中间值与目标值进行比较,来缩小区间的一般。思想:数据必需是排好序的(升序或者是降序排列),假设数据是按升序排序的。 基本思想如下:对于给定值key,从序列的中间位置mid开始比较,a为初始位置,b为末尾位置,如果当前位置r[mid]值等于key,则查找成功;若key小于当前位置值r[mid],则在数列的前半段中查找r[a,mid];若key大于当前位置值r[mid],则在数列的后半段中继续查找
2021-05-22 23:55:14 88
原创 2021-05-15学习总结8
2021-05-15学习总结8多重背包完全背包问题可以视为特殊的多重背包问题。多重背包问题,有n件物品,每件物品各自的件数n。每件物品可以选0件,1件……n件。dp方程:dp[i][j]=max(dp[i-1][j],dp[i-1][j-k * wight[i]]+k * value[i]); //k=0……num[i]代码:#include<iostream>#include<cstring>using namespace std;const int MAXN
2021-05-15 21:42:39 86
原创 2021-05-08学习总结7
2021-05-08学习总结7背包问题这一周我学习了背包问题。01背包01背包问题,有n件物品,每件物品只有一件,你可以选或者不选,即01问题。每一件物品有其体积和价值,不选这件物品背包重量不会增加,价值也不会增加;选这一件物品背包重量会增加,价值也会增加。dp方程:dp[i][j]=max(dp[i-1][j],dp[i-1][j-wight[i]]+value[i]);不选这一件物品:dp[i-1][j]选这一件物品物品:dp[i-1][j-wight[i]]+value[i]代码:
2021-05-09 16:07:14 876
原创 2021-4-24学习总结6
2021-4-24学习总结6区间dp在前几个星期里我学习了线性dp,线性dp是对一个个点找到其与前一个的点关系,列出状态转移方程来求解。而区间dp和线性dp类似只不过区间dp将线性dp中的点扩展成一个连续的区间。因此要在区间上进行动态规划,求解一段区间上的最优解。再通过合并小区间的 最优解进而得出整个大区间上最优解的dp算法。区间dp的基本公式1、枚举举区间长度2、枚举段落的开头i和结尾j3、枚举分割点k通过对问题进行简单的推导就会发现,当我们首先枚举区间长度//区间dp的基本公式#inc
2021-04-24 23:43:23 57
原创 2021-4-17学习总结5
2021-4-17学习总结5上周六晚上在codeforces上打了一场div.2的比赛,第一题的感觉与div.3的比赛相比饶了很多弯,但是最后发现题目的本身还是挺简单的。但是第二题我就没有理解题目的含义没有做出来。A题题意:有三种类型的评论员,他们依次到来,一种反对者,一种支持者,还一种随波逐流的人,即根据当前情况,如果反对数 > 支持数,就投反对,反之投支持的人,现在你有两个投票系统,你可以选择给当前来到的客人展示其中一种,问你最多可以获得多少票支持。//错误代码:#include <
2021-04-17 20:35:16 79
原创 2021-04-10学习总结4
2021-04-03学习总结4线性动态规划动态规划不同于贪心算法,贪心算法是找到局部最优解后,其他不是最优解的值就会被舍弃不会再计算,并且贪心算法是需要排序的,数组下标没有意义。而线性动态规划是寻找全局最优解,它会考虑所有的值计算所有的值,找到状态转移方程来得到全局的最优解,并且在动态规划中数组的下标是有意义的,不能进行排序而将其打乱,求解线性动态规划的问题一般会建立一个dp数组来进行储存所计算的数值来简少重复计算的时间。...
2021-04-10 23:44:48 46
原创 2021-3-27学习总结3
2021-3-27学习总结3上个星期我对贪心算法掌握不是很好,做题错误率很高和思路有问题。上个星期六对贪心算法的题型进行了总结让我做题AC率有了明显了提高,从上个星期天到星期五我AC了8道题,同时通过错题和看CSDN上的题解学到了很多东西。星期四晚上打了一场codeforces的比赛虽然过了一题但是用了将近50分钟的时间,A题还是最简单的题。这一次比赛还是等级3的比赛,以我现在的做题速度根本无法做完3道题。新知识点1、memset函数(1)一般用于初始化数组,防止上一次变量造成对本次数组的干扰。i
2021-03-27 14:47:35 49
原创 2021-03-20学习总结2
2021-03-20学习总结2贪心算法定义贪心法并不是从整体最优考虑,它是按照某种最优策略,将复杂问题层层分解成子问题(每次一般只有一个),并由子问题的最优解“回溯”出整个问题的最优解。但是从贪心算法的定义可以看出,贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,所以有时候贪心算法并不能得到真正的整体最优解,这是我们应该注意的问题。即这个问题是否真的能用贪心算法来得到最优解。方法一些简单的问题可以一下看出可以用贪心可以得到最优解,如: 最优装载问题,背包问题,取水问题等等
2021-03-20 12:51:28 70
原创 2021-3-13 学习总结1
2021-3-13 学习总结1STL1、string类string是字符数组的升级。头文件#include< string>,不需要定义数组长度并且还可以使用类似数字运算的方式来对字符串的复制,末尾添加等。常用操作:s1=s2+s3; //将s2和s3赋给s1s1.size() //求字符串的长度s1.empty() //判断是否为空,返回布尔值,空(true),不空(false)getline()//读取一行,见换行符’\n’停止s1<s2 //比较字典序s[] //
2021-03-13 18:26:55 54
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人