Vijos P1297 生日蛋糕 NOI1999

2024-03-02 21:38

本文主要是介绍Vijos P1297 生日蛋糕 NOI1999,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

居然又是搜索题

本来以为是贪心

后来发现搜索加剪枝 轻松过

剪枝大法好!!!!!!!!!!!!!


注意题目中的 pi是常数 派  我开始以为是单位啥的..


#include <iostream>
using namespace std;
int n,m;
int min_s=1000000000;
int SS[25],VV[25];
void dfs(int s,int v,int f,int last_h,int last_r)
{
//	cout<<s<<' '<<v<<' '<<f<<endl;if(s+SS[f]>=min_s) return ;if(v+VV[f]>n) return ;if(f==0){if(v==n) min_s=s;//,cout<<s<<endl;return ;}for(int h=f;v+h*f*f+VV[f-1]<=n&&h<last_h;h++){for(int r=f;v+h*r*r+VV[f-1]<=n&&r<last_r;r++){int tmp=0;if(f==m) tmp=r*r;dfs(s+tmp+2*r*h,v+r*r*h,f-1,h,r);}}
}
int main()
{cin >>n >>m;for(int i=1;i<=m;i++){SS[i]=SS[i-1]+2*i*i;VV[i]=VV[i-1]+i*i*i;}dfs(0,0,m,1000000000,1000000000);if(min_s==1000000000) cout<<0<<endl;else cout<<min_s<<endl;return 0;
}


这篇关于Vijos P1297 生日蛋糕 NOI1999的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/767504

相关文章

HTML生日蛋糕

目录 写在前面 完整代码 代码分析 系列文章 写在最后 写在前面 HTML实现的生日蛋糕来喽,小编亲测,发给好友可以直接打开哦。在代码的第183行可以写下对朋友的祝福,快拿去送给你的好朋友吧! 完整代码 <!DOCTYPE html><html lang="en" ><head><meta charset="UTF-8"><title>Happy Birthd

vijos P1680距离

https://vijos.org/p/1680#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;char s1[2222],s2[2222];int dp[2222][2222];int min(int a,int b,int c){b=b<c?b:c;re

vijos 1028 最长上升序列。

vijos 1028 换一个角度看问题。这道题其实就是一个上升序列。 如:a,aa,aaa,aaaa.一个另类的上升序列。 然后弱弱的试了是二分查找。很理想。不过却是个错误的思路。 朴素的上升序列求法 代码: #include <iostream>#include <string.h>#include <algorithm>using namespace std;char

vijos 1193 dp

每一行的状态由之前两行决定,dp[i][t][k]表示第i行状态为k,下一行状态为t时的种数,然后dp一遍即可。 代码: #include <iostream>#include <cstring>#include <cstdio>using namespace std;int a[10010];int dp[10010][2][2]; //1下一行还需要一个1,0下一行不需要1in

Vijos:P1001谁拿了最多奖学金

描述 某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得; 2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得; 3) 成绩优秀奖,每人2000元,期末平均成绩高于

poj1190 生日蛋糕 dfs

题意:生日蛋糕有m层,总体积是V。从下向上,每一层的半径r和高度h都是递减的。 给m、v,求最小的表面积s。(不算底面接地的面积) 题目链接:poj1190 剪枝都还没加。。样例输出都是错的。。。还没找到问题。。。 #include <iostream>#include <cstring>#include <string>#include <cstdio>#i

vijos 1100(树状dp)

点击打开链接 描述 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下: subtree的左子树的加分× subtree的右子树的加分+subtree的根的分数 若某个子树

生日蛋糕 POJ-1190

7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。 设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为Hi的圆柱。当i < M时,要求Ri > Ri+1且Hi > Hi+1。 由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。 令Q = Sπ 请编程对给出的N和M,找出蛋糕的制作方

信息学奥赛一本通T1441-生日蛋糕【dfs】

信息学奥赛一本通T1441-生日蛋糕 - C语言网 (dotcpp.com) #include <iostream>#include <algorithm>#include <cmath>using namespace std;const int N=1e5+100;int n,m;int res=1e9;void dfs(int spv,int cnt,int r,int h

P1731 [NOI1999] 生日蛋糕——典型的回溯和剪枝题目,值得一看

今天尝试了一下md的编辑器,不知道有没有什么改变 [NOI1999] 生日蛋糕 题目背景 数据加强版 link 题目描述 7 月 17 日是 Mr.W 的生日,ACM-THU 为此要制作一个体积为 N π N\pi Nπ 的 M M M 层生日蛋糕,每层都是一个圆柱体。 设从下往上数第 i i i( 1 ≤ i ≤ M 1 \leq i \leq M 1≤i≤M)层蛋糕是半径为