蓝桥杯整数的分解题解

 

 蓝桥杯b组第四题,依旧是填空题年份未知,这题看上去本来想直接暴力解决,但是发现时间复杂度太大了,跑不完

所以!重点在于怎么缩小时间复杂度,当然这题有很种解法。

#include <bits/stdc++.h>
using namespace std;
int main()
{
long long a=0;
for(int i=1;i<=2021;i++)
for(int j=1;j<=2021;j++)
for(int k=1;k<=2021;k++)//如果纯暴力就话5个变量需要5个for(好像要跑八千多个小时)
{
int b=2021-i-j-k;//确定前三位,如何观察后两位是什么规率

if(b>=2)
a+=(b-1);

}//后两位排列组合的种数为后两位数和减一
cout<<a<<endl;
return 0;
}(拿下30分!)

posted @ 2022-04-03 15:16  星k  阅读(115)  评论(0)    收藏  举报