2 条题解
-
0
#include <iostream> #include<bits/stdc++.h> #define int long long const int INF=0x3f3f3f3f; using namespace std; int n,m; int minn=INF; void dfs(int r, int h, int v,int s,int step){ if(step==m+1){ if(v==n){ minn=min(minn,s); } return; } if(v+m-step+1>n) return; if(v+(m-step+1)*((r-1)*(r-1)*(h-1))<n) return; if(s+2*(n-v)/r>=minn) return; for(int i=r-1;i>=m-step+1;i--){ for(int j=h-1;j>=m-step+1;j--){ dfs(i,j,v+i*i*j,s+2*i*j,step+1); } } } signed main(){ cin>>n>>m; for(int i=m;i*i*m<=n;i++){ for(int j=m;j<=n;j++){ if(2*i*j+i*i<minn){ dfs(i,j,i*i*j,2*i*j+i*i,2); } } } if(minn!=INF){ cout<<minn; }else{ cout<<0; } return 0; }
信息
- ID
- 79
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 68
- 已通过
- 36
- 上传者