时空复杂度的分析

一.常见的时间复杂度量级有:

1.O(1)

2.O(logN)

3.O(n)

4.O(nlogN)

5.O(n²)

有时候,我们去计算时间复杂度的时候 发现不是一个 简单的O(n) 或者O(n^2), 而是一个复杂的表达式,例如:

O(2*n^2 + 10*n + 1000)

我们可以简化去掉运行时间中的加法常数项 (因为常数项并不会因为n的增大而增加计算机的操作次数我们通常不计)

O(2*n^2 + 10*n)

去掉常数系数 O(n^2 + n)

只保留保留最高项 去掉数量级小一级的n (因为n^2 的数据规模远大于 n),最终简化为:

O(n^2)

所以我们可以说,这个算法的算法时间复杂度是 O(n^2)

二..P8780 [蓝桥杯 2022 省 B] 刷题统计

小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?

输入格式

输入一行包含三个整数 a, b和 n.

输出格式

输出一个整数代表天数。

输入输出样例

输入

10 20 99

输出

8

#include<iostream>
using namespace std;
int main()
{
    long long a,b,n;
    cin>>a>>b>>n;
    long long day=0;
    long long m;
    m=a*5+b*2;
    day=n/m;
    n=n-day*m;
    day=day*7;
    for(int i=1;n>0;i++){
        if(i==6||i==7)
        n-=b;
        else{
            n-=a;
        }
        day++;
    }
    cout<<day;
 } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值