zoukankan      html  css  js  c++  java
  • poj1190

    #include<stdio.h> int N=100; int M=2; int s; int min=9999; void dangao(int ceng,int dangv,int h,int r) {  if(s>min)   return;  if(dangv>N)   return;  if(ceng==M+1)  {   if(dangv==N)   {    if(min>s)    {     min=s;

       }   }   return;  }  for(int rr=r;rr>0;rr--)  {   for(int hh=h;hh>0;hh--)   {    if(ceng==1)    {     s=rr*rr;    }    s=s+2*rr*hh;    dangao(ceng+1,dangv+rr*rr*hh,hh-1,rr-1);    s=s-2*rr*hh;   }  } } int main() {  dangao(1,0,100,10);  printf("%d",min);  return 0; }

    /*就是挨个试,递归函数的出口是蛋糕的层数,R和H的两从循环,因为题目介绍底下的蛋糕层H和R必须大于上层的H和R,所以假如第一层我选长度为H和R那末下一层就从H-1和R-1开始选,直到规定层数判断并跳出,两个减枝 1,if(s>min) return;
    如果当前表面积已经大于min面积,return,不再搜索。2, if(dangv>N)return;如果当前体积大于N,return,不再搜索。

    另外他说表面积体积都有派,不过V=N派,表面积,体积都有派,都约下去,不用计算公式内

  • 相关阅读:
    avalon如何用年月日的方式输出..
    做一个倒计时的功能,天,时,分 /时,分,秒
    avalon用background-image不起作用,怎么来选取前几个的图片进行渲染
    获取地址栏的参数的两种方法?
    mac屏幕录制
    数据可视化
    vscode 插件
    git 命令 总结
    jest
    react admin
  • 原文地址:https://www.cnblogs.com/452035305qq/p/6164705.html
Copyright © 2011-2022 走看看