2 条题解
-
-1
53.ABC组(广赋张老师的题解)
#include <bits/stdc++.h> using namespace std; int main(){ long long ans=0; long long N; cin>>N; //已知a ≤b ≤c,要求 a*b*c ≤N ,找出可行的 a、b、c; for(long long a=1;a*a*a<=N;a++){//如果a*a*a大于N就不用往后算了 for(long long b=a;a*b*b<=N;b++){//如果a*b*b大于N就不用往后算了 if( N/b/a>=b){ //因为a*b*c≤N,所以变换得到 c≤N/b/a,并且c≥b ans += N/b/a - b + 1; // c可取个数 = 终点c - 起点b + 1;累加到答案ans即可,最后输出答案ans即可 } } } cout<<ans; return 0; } -
-1
#include #include using namespace std; typedef long long ll;
int main() { ios::sync_with_stdio(false); cin.tie(0);
ll n, t = 0; cin >> n; for (ll A = 1; A * A * A <= n; A++) { for (ll B = A; A * B * B <= n; B++) { ll maxC = n / (A * B); if (maxC >= B) { t += (maxC - B + 1); } } } cout << t; return 0;}
- 1
信息
- ID
- 53
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 132
- 已通过
- 29
- 上传者