IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 洛谷-P1028 -> 正文阅读

[数据结构与算法]洛谷-P1028

https://www.luogu.com.cn/problem/P1028

这道题刚开始的做法是暴力递归,但是时间复杂度太高了过不去,所以就看了一下递归的优化,递归可以用递推和记忆化搜索来进行优化,递归是从上往下,到达出口之后再回溯,其中不乏有许多重复计算,一旦数据量大一些,时间复杂度就会很高。递推是从下往上,所以相对于递归不会有重复计算,也省去了回溯这一操作;记忆化搜索是记录下递归操作中已经算出来的结果,等下一次用到的时候可以直接调用,相当于也是省去了重复计算。

这道题是计算从数的左边加一个小于等于它一半的数?,直到不能再加为止(也就是递归出口为1),f(n) = \sum_{i=1}^{n/2}f(i) + 1?具体的数不用记录,故在每次调用的基础上加一就可以(注意这里的和不能设为全局变量,会把之前的结果也加进来)。发现自己对递归,递推还有搜索这些算法学习的都不是很好,明天开始先刷这几个吧。如果有不对或者改进的地方,希望大佬们予以指正。还有还有大家有关于算法刷题的一些小建议或者经验之类的吗?本蒟蒻刚开始刷算法不久,还有一点小迷茫,尤其对上面三个递归,递推,还有搜索之类的。

#include <bits/stdc++.h>
using namespace std;

int f[10000];
int shu(int n){    //记忆化搜索,用数组来保存已经算过的值,避免重复计算
	if(n == 1)
		f[1] = 1;
	int ans = 1;
	if(f[n] != 0) return f[n];  //避免重复计算
	 for( int i = n/2; i > 0; i --){
	 	ans += shu(i);
	 	f[n] = ans;  //第一次把f[n]想成了f[i],如果是f[i]的话,每次调用的结果更新的都是f[1],但是实际上循环完之后ans的结果是函数参数n的结果
	 }
	 return ans;
} 

int main(){
	int n;
	cin >> n;;
	cout << shu(n);
	return 0;
	
} 

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-25 10:49:54  更:2022-01-25 10:52:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 19:58:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码