一.常见的时间复杂度量级有:
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;
}