zoukankan      html  css  js  c++  java
  • poj1190

    #include<stdio.h>
    #include<math.h>
    int result=0x7fffffff;//保存最小值
    int N,M;
    void search(int lev,int m,int curS,int r,int h)//lev剩余的体积 m当前层数 curS 当前总表面积 r半径 h 高度
    { if(!m) //当m==0&&lev==0时,说明方案成立,否则说明到达最高层,直接返回 { if(!lev&&curS<result) result=curS; return ; } if(curS>result)//剪枝 return ;
    if(curS+lev*2/r>=result)//剪枝
    		return ;
    	for(int i=r;i>=m;i--)//每层的h和r最小为m
    		if(lev>=i)
    			for(int j=h;j>=m;j--)
    				if(lev-i*i*j>=0)
    					if(m==M)
    						search(lev-i*i*j,m-1,i*i+2*i*j,i-1,j-1);
    					else
    						search(lev-i*i*j,m-1,curS+2*i*j,i-1,j-1);
    }
    int main()
    {
    	scanf("%d %d",&N,&M);
    	search(N,M,0,sqrt((double)N),N/M);//r小于等于sqrt(N),h小于N/M
    	if(result<0x7fffffff)
    		printf("%d\n",result);
    	else
    		printf("0\n");
    	return 1;
    }
  • 相关阅读:
    C
    A
    L
    G
    关于html()、val()、text()
    EL表达式
    JSON书写格式示例
    Servlet获取项目名的方法
    修改完Servlet后不用重启项目的设置方法
    浮动
  • 原文地址:https://www.cnblogs.com/ltfbk/p/2583052.html
Copyright © 2011-2022 走看看