http://poj.org/problem?id=1190
/* @author: */
import java.util.Scanner;
public class Main {
static int end,min;
static int M,S;
static int dfs(int v,int m,int lastr,int lasth)
{
if(m==0)
{
//������Ϊ0ʱ��ʣ�����Ϊ0,˵��˴�����ɹ�,Ӧ����
if(v>0||v< 0)
return 0;
else
{
//Ϊ0,����Ŀ���н�,�жϵ�ǰ�������Ƿ���Ѿ��õ�����С���С,��С���û�.
end=1;
if(min< S)
S=min;
return 0;
}
}
int i,t=0,j,k,temp;
//����m���������
for(i=1;i<=m;i++)
t+=i*i*i;
//��ǰ������С���С,����
if(v< t)
return 0;
t-=m*m*m;
int maxr,maxh;
//���㵱ǰ��ײ����ܹ��ﵽ�����뾶.
maxr=(int)Math.sqrt((v-t)*1.0/m)< lastr?(int)Math.sqrt((v-t)*1.0/m):lastr;
for(i=maxr;i>=m;i--)
{
//����ȷ���뾶��������ܹ��ﵽ�����߶�
maxh=(v-t)/(i*i)< lasth?(v-t)/(i*i):lasth;
//����
for(j=maxh;j>=m;j--)
{
temp=0;
//��ݵ�ǰ��ײ�ȷ��m�㵰���ܴﵽ��������.
for(k=0;k<=m-1;k++)
temp+=(i-k)*(i-k)*(j-k);
//���������,�϶�����ʣ��,����
if(v>temp)
break;
int tempv=v-i*i*j;
//��һ��ʱҪ�����ϱ�������
if(m==M)
{
if(i*i< S)
min=i*i;
else
{
tempv=v;
continue;
}
}
//���ϲ����,��ÿһ�㶼����
min+=2*i*j;
//��ǰ�õ�������Ѿ�������֪����С������,����ľͲ�����������,ֱ�ӷ���
if(min>S)
{
tempv=v;
min-=2*i*j;
continue;
}
dfs(tempv,m-1,i-1,j-1);
//���ݺ�Ҫ�ָ����
min-=2*i*j;
}
}
return 0;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
///��������,�����Լ����֦�Ż�
//S��ʾ��С���
int N;
//end��ʼΪ0,�н����Ϊ1.min��4��ʾÿ�γɹ�����ʱ�����������
//v��ʾ��ǰʣ������,m��ʾʣ�൰��IJ���,lastr��ʾ�Ѿ�ȷ������һ�㵰��İ뾶,lasthͬ��
while(sc.hasNext())
{
N=sc.nextInt();
M=sc.nextInt();
int t=0;
end=0;
S=100000;
dfs(N,M,1000,1000);
if(end==0)
S=0;
System.out.printf("%dn",S);
}
}
}
Meta
-
Recent Posts
Recent Comments
Archives
- May 2024
- April 2023
- February 2023
- January 2023
- December 2022
- November 2022
- September 2022
- June 2022
- July 2021
- January 2021
- February 2020
- September 2019
- March 2018
- February 2018
- August 2016
- July 2016
- June 2016
- May 2016
- April 2016
- March 2016
- February 2016
- January 2016
- December 2015
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- February 2014
- January 2014
- December 2013
- November 2013
- October 2013
- September 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
Categories
