acwing蓝桥杯辅导课笔记01

1.如何准备

a.先过知识点,再刷历年题

b.练习时注意调试,自己多训练

c.多刷题,省一200题左右,国赛300题左右

2.做题套路

题目描述-->抽象出模型

判断算法是否能用?

  1. 正确性

  1. 时间是否会超时(评测机1秒内可运行10^8次)

3.第一讲 递归与递推

递归(dfs)(自己调用自己)

int f(int n)
{
   f(n-1)
}

如斐波那契数列(1,2,3,5,8,12,21.....)

#include<iostream>

using namespace std;

int f(int n){
    if(n==1) return 1;
    if(n==2) return 2;
    return f(n-1)+f(n-2);
}
int main(){
    int n;
    cin>>n;
    cout<<f(n)<<endl;
    return 0;
}

---

所有递归都可以转化成递归搜索树,考虑使用递归时要先有树的概念

顺序从1~n依次考虑每个数选或不选

递归要注意恢复现场

---

练习:

AcWing 92.递归实现指数型枚举

AcWing 94. 递归实现排列型枚举

AcWing 93. 递归实现组合型枚举

递推

AcWing 717. 简单斐波那契

以下数列 0 1 1 2 3 5 8 13 21 ... 被称为斐波纳契数列。

这个数列从第 3 项开始,每一项都等于前两项之和。

输入一个整数 N,请你输出这个序列的前 N 项。

输入格式

一个整数 N

输出格式

在一行中输出斐波那契数列的前 N 项,数字之间用空格隔开。

数据范围

0<N<46

输入样例:
5
输出样例:
0 1 1 2 3
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm> 
using namespace std;
int main(){
    int n,f[47];
    cin>>n;
    f[1]=0;
    f[2]=1;
    for(int i=3;i<=n;i++){
        f[i]=f[i-1]+f[i-2];             
    }
    for(int i=1;i<=n;i++){
        printf("%d ",f[i]);
    }
    puts("");
    return 0;
}

输入输出:scanf,printf速度快,字母长;cin,cout速度慢,字母短

若输入范围小于10^5,用cin,cout;大于则用scanf,printf

直接用scanf比较保险

2^20->10^6,

2^16->65536,

2^15->32768,

2^63->10^18

四种常见头文件,基本涵盖所有函数:

#include<iostream>
#include<cstdio>
#include<cstring>  
#include<algorithm>

puts("");指输出一个空字符串加回车,相当于回车,等同于printf("%d\n");

字典序:ai>bi,则A>B;ai<bi,则A<B,;若ai不存在,bi存在,默认A<B

变量定义为全局变量,则初值为0,变量定义为局部变量,则初值为随机值

int x[]={2,3,6,4,8,9};
for(int i=0;i<sizeof(x);i++) //sizeof(x)=24
for(int i=0;i<sizeof(x)/sizeof(x[0]);i++) //sizeof(x)/sizeof(x[0])=6

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值