题意:找出满足ab+ac+bc<=n&&a+b+c<=x的a,b,c的个数
分析:遍历a,遍历符合条件的b,找出两个式子c的最大值的最小值相加。
代码:
#include<bits/stdc++.h> using namespace std; typedef long long ll; void sol(){ int n,x;cin>>n>>x;ll ans=0; for(int a=1;a<=n;a++){ for(int b=1;a+b<=x&&(ll)a*b<=n;b++){ ans+=min(x-a-b,(n-a*b)/(a+b)); } } cout<<ans<<endl; } int main(){ int t;cin>>t; while(t--)sol(); return 0; }