
这段时间我学到了很多东西,但是我并没有真正学到很多东西. 在某些地方,由于其基础薄弱,目前尚不清楚. 知道我必须努力学习,但是家里的懒惰确实让我错过了很多美好时光. 尽管情况最近有所改善,但我从以前的课程重播中也学到了一些东西. las,在后续工作中,我仍然必须纠正自己的态度,更加自律.
“一个”的递归算法
一个
1. 逐层分解大而复杂的问题,以解决小而小的问题
2. 基本思路: 逐层分解
第二步,
1. 分析问题,寻找递归;找到大尺度与小尺度之间的关系
2. 找到停止条件
3. 设计功能并确定参数
三,寻求1-100
递归: fn(n)= n + fn(n-1)
终止条件: f(1)= 1
代码: int fn(int n){
如果(n <= 1)返回1;
其他
返回n + fn(n-1);
}
注意: 终止条件首先作为单独的项目处理.
注: ①出口; ②形式参数必须对应于递归(数据大小)-递归关系的表示形式(返回值).
1. 在主函数中逐层调用.
2. 返回值(逐步回溯,求解)时只需要一个小规模的解决方案
四,功能
简化通话过程中的问题,并在回溯过程中获得问题的解决方案.
3.1.2完整地安排馆藏
一个
1. 首先排名高,然后少关注一个
2. 大问题变小
3. 列出所有高级情况以确定子问题
4. 需要枚举! (重要)
3.3完整的递归算法
1,至少需要两个或更多.
2. 例如,排列k-m中的所有数据(在许多情况下应枚举)
3. 递归调用,完整安排
4. 恢复原始数据-数据交换(重要)(次级交换-枚举重要问题)
3.3.8设置了一半的数字
寻找几个要素
半集是多集
使用递归,不要忘记关联原始数字
[注意]使用数组存储计算结果,以避免重复并提高效率
3.3.12内存搜索
已知结果记录添加数组
“两个”组合数据类型

一个
1. 定义结构变量的格式:
结构结构类型名称和变量名称列表;
//
结构类型名称{
数据类型1成员名称1;
数据类型2成员名称2;
. .
}变量名
2. 具有多个变量的数组
3. 可以将同一类型放在一起
4. 交换是分配值时的整体交换
两个重载运算符
在结构体中定义成员函数时,将省略数据成员的操作,并省略结构变量.
重载<操作符以进行比较
比较功能以进行比较.
三,指针和引用
1. 定义指针时,应先初始化指针
2. 可以比较相同类型的指针是否相等和不相等,比较的结果是布尔类型
3. 指针可以执行整数值的加法或减法
4. 自增和自减运算适用于指向数组元素的指针
5. C ++通过新建和删除来管理动态存储空间
“三个”类别和对象
一个
1. 一个类的数据成员可以是其他类的对象递归 2次调用,但是您不能使用该类本身的对象作为该类的成员,并且该类本身的指针和引用可以是该类的成员
2. 类定义完成;结束
3. 类和结构之间的区别: 如果未明确指定类成员的访问权限,则c ++结构的成员是公共的,而类的成员是私有的.
第二,
1. 构造函数必须重载
2. 函数重载: 具有相同函数名称但参数类型或数字不同的一组函数. 编译器根据不同参数的类型和数量生成调用匹配. 函数重载用于处理不同数据类型的相似任务
3. 构造函数必须至少包含两个,其中之一没有参数
4. 构造函数创建对象时,将通过指针和new来实现它. 通用语法为: 类名*指针变量=新类名[(实际参数表)]
5. 必须使用参数初始化列表初始化数据成员的几种情况:
数据成员是常量;数据成员是引用类型;数据成员是没有无参数构造函数的类的对象.
三,班级包含(班级组合)
当一个类包含已定义的类类型的成员时,带有参数的构造函数将使用初始化语法来初始化数据成员.
构造函数(形式参数表): 对象成员1(形式参数表),…,对象成员n(形式参数表);
如果定义了A类,则B类包含A类:
B级
{
private: int b;
AA; //没有括号

...
};
“四个”递归算法
1. 从子问题的最优解到整个最优解的最优解算法,被分解为子问题(一次只能分解为一个子问题)
2. 考虑局部优化-“整个问题
3. 条件
①是否满足
②选择贪婪准则(如何找到局部最优解
4. 最优加载问题
策略: 最轻便,最先安装
找到最佳问题并定义结构
排序,添加函数(比较/比较函数-返回值布尔类型
-取真值表示不变,交换假值
内存集(0/1),请使用它清除
为容器编号
排序(贪婪策略)[第二个函数是无效函数的下标打开间隔,第一个是闭合间隔]
5. 背包问题-最大价值
三种方法(安装大型物品,安装大型物品,节省成本)
结构说明背包
排序货币(价格/性能比下降)[更改和不变的订单]
使用标准模板库函数排序(最好是stable_sort())
使用剩余容量进行选择,然后选择值
如果要获得解向量X = {x1,x2,x3 ...},则需要将项目编号int索引添加到数据结构中以进行处理
6. 货币兑换
最少的找零先用大面积的纸币来寻找
升序货币-从大下标到小下标
6. 排期问题
(在可选工作中,每次选择最早的结束时间-要遵循的规则)
1}早晚根据时间对所有作业进行排序
2}按顺序选择作品,不允许发生冲突
const int n = 5;
int S [n] = {1,2,4,6,8};
int T [n] = {3,5,7,9,10};
pair
int解决()
{
//为了使工作提前结束,将T放在第一位,将S放在第二位
for(int i = 0; i itv [i] .first = S [i]; itv [i] .second = T [i]; } sort(itv,itv + n); //升序排列 int计数= 0; //选择结果 int t = 0; //最后选择的作业的结束时间 for(int i = 0; i if(t 计数++; t = itv [i] .second; //时间增加了 } } 返回计数; } int main(){ int k = solve(); cout << k <<结束; 返回0; 7. 字典顺序的最小问题 (指从前到后比较两个字符串大小的方法,首先比较第一个字符,如果不同,则第一个字符较小的字符串较小,如果相同,则继续比较第二个字符. ...继续一次又一次地比较) 1}从头选择等同于向上移动,从尾选择等同于向下 2]最初使用数组存储源字符串 3]循环语句以比较字符串(从开头或结尾开始将其取为查找可比较的字符 4]哪一方会输出大一方递归 2次调用, 8. 分发Cookie (为食欲大的孩子提供大饼干) 1]编写一个函数来求解,两个形状参与向量,食欲g,饼干s 2} bagin()返回起始地址 end()返回最小的无效地址 3} size()获取矢量元素 4]循环语句 for(int i = g.size()-1; i> = 0;){//从大到小 如果(index> = 0){//分配cookie时不应该考虑 if(g [i] <= s [index]){ res ++; 索引–; } i –; } // Cookie消失时结束了 其他休息; } 8. 船过河的问题 (首先排序每个人以递增顺序过河的时间. 我们考虑派遣最需要时间的两个旅行者单独过河. 有两种方法: ①最快,其次是最快,然后最快的划船回来;最慢的和第二慢的,然后最快的划船回来,所需的时间: t [0] + 2t [1] + t [n-1] ②最快和最慢的穿越,然后是最快的后退,最快和第二最慢的穿越,然后是最快的后退,所需时间: 2t【0】+ t【n -2】+ t【n-1】 1,而(t–)// //两种方式 { scanf(“%d”,&n); sum = 0; for(int i = 0; i 排序(a,a + n); 同时(n> 3) { sum = min(sum + a [1] + a [0] + a [n-1] + a [1],sum + a [n-1] + a [0] + a [n-2 ] + a [0]); n- = 2; } 如果(n3)个和+ = a [0] + a [1] + a [2]; 否则,如果(n2)sum + = a [1]; 其他总和+ = a [0]; printf(“%d \ n”,总和); } 9,POJ-1862-条纹 首先找到两个要碰撞的大型物体 通过优先级队列(第一个元素是最大值 double a = q.top(). val; q.pop();删除元素,然后重新排列其余元素(不删除或布置) 10,HDU3183魔术灯 n个数字中的M,最小 第一个选择[1,M +1]中最小的一个,上限为M + 2; 同时(scanf(“%s%d”,num和m)!= EOF) {//一次选择一个 t = 0; k = 0; int len = strlen(num)-m; //选择n-m位// m作为截止位 while(len –) { temp = t; // t是开始位置 for(int i = t; i <= m; i ++)//找到最小数量的下标 { if(num [temp]> num [i]) temp = i; } //为他分配相应的号码 10,HDU 1388游戏预测 (最多输掉最大次数,赢至少n-max次,使用对手最小的牌以升序比较您手中的牌)对手的牌 11,zoj 3627寻宝游戏ll (枚举两个人开始向左和向右离开m两点,然后查看剩余时间,可以继续向左或向右走,最后得到的最大值是Yes. 您需要注意边界的处理. ) 首先输入n个城市,总和【0】= 0; 句柄前缀和: sum [i] = sum [i-1] + val [i]; 通话功能(确定获取最多的策略) for(int i = 1; i <= n / 2; ++ i) 交换(val [i],val [n + 1-i]); //反转数组元素 我学到的东西还远远没有达到要求. 我应该放弃懒惰,变得更加自律,就像我上课时在学校一样. 力争考试成绩良好.

本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-180425-1.html
房价不降