中文wordpress网站模板,企业网站网址,营销型网站页面,百度宁波运营中心题意
原来体积是ABC,现在体积是(A-1)* (B-2)*#xff08;C-2#xff09;,输入一个现在的体积n#xff0c;要求现在的体积比原来减少了多少#xff0c;输出一个减小的最小值和最大值
输入
4
输出
28 41
说明
注意问题的答案可能足够大#xff0c;所以必须使用 64 位…题意
原来体积是ABC,现在体积是(A-1)* (B-2)*C-2,输入一个现在的体积n要求现在的体积比原来减少了多少输出一个减小的最小值和最大值
输入
4
输出
28 41
说明
注意问题的答案可能足够大所以必须使用 64 位整数类型进行计算。 请不要使用 %lld 说明符在 С 中读取或写入 64 位整数。 最好使用 cin、cout 流或 %I64d 说明符。
代码
#includebits/stdc.husing namespace std;typedef long long LL;LL n,k,s9e1810,cnt,a[1000010];int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cinn;for(int i1;i*in;i) if(n%i0) a[cnt]i,a[cnt]n/i;if(sqrt(n)trunc(sqrt(n))) cnt--;for(int i0;icnt;i){for(int j0;jcnt;j){if(a[i]*a[j]*(n/a[i]/a[j])n){smin(s,(a[i]1)*(a[j]2)*(n/a[i]/a[j]2));kmax(k,(a[i]1)*(a[j]2)*(n/a[i]/a[j]2));}}}couts-n k-nendl;return 0;
}总结
1.trunc函数
表示的是去掉小数点后面的数字这里使用是因为如果是一个数字的平方的话因子存了两次其实是没有影响的不过也算是一个小优化
2.cnt的增加问题
我们的cnt从0开始使用
cnt;
//假设存了两个数字但是这个时候cnt变成了3
//我们在后面使用的时候只遍历到cnt-1即可3.按照题目模拟出结果即可
4.能用大的数据范围就使用大的数据范围