自己想出这题的大佬蒟蒻在这儿%您了

我实在是太弱了,搜索这种辣鸡算法都不会(逃

这题真的是想了好久,每次都会T三个点,我以为我的剪枝已经堆了够多了,结果后来才知道是一个关键剪枝没想到OTZ

先贴代码

#include <bits/stdc++.h>
using namespace std;
#define rint register int
int n, m, ans = 99999999;
int ini1[20], ini2[20];
inline void init( void ){
for( rint i = 1; i <= m; i++ ){
ini1[i] = pow( i, 3 ) + ini1[i - 1];
ini2[i] = 2 * i * i + ini2[i - 1];
}
return ;
}
inline void dfs( int nowv, int nows, int r, int h, int t ){
if( t == 0 ){
if( nows == n ) ans = min( ans, nowv );
return ;
//cout << 1;
}
if( nowv + ini2[t - 1] >= ans ) return ;
//cout << 1;
if( nows + ini1[t - 1] >= n ) return;
//cout << 1;
if( 2 * ( n - nows ) / r + nowv >= ans ) return ;
for( rint i = r - 1; i >= t; i-- ){
//cout << 1;
if( t == m ) nowv = i * i;
int hh = min( h - 1, ( n - nows - ini1[t - 1] ) / ( i * i ) );
for( rint j = hh; j >= t; j-- ){
//cout << t << endl;
dfs( nowv + 2 * i * j, nows + i * i * j, i, j, t - 1 );
}
}
return ;
}
int main( void ){
scanf( "%d%d", &n, &m );
init();
int temp = sqrt( n );
//for( int i = 1; i <= m; i++ ) cout << ini[i] << ' ';
dfs( 0, 0, temp + 1, n + 1, m );
if( ans == 99999999 ){
cout << 0;
return 0;
}
cout << ans;
return 0;
}

看这输出的1就知道我错了多少次,结果发现把一个t打成了 \(t - 1\) qwq

关键剪枝

if( 2 * ( n - nows ) / r + nowv >= ans ) return ;

这里详细推一下

1 到$ dep - 1$的体积为

\(n - v = \sum_{k = 1}^{dep - 1}h[k] * r[k] ^ 2\)

表面积为

$2\sum_{k = 1}^{dep - 1}h[k] *r[k] $

又臭又长警告

\(\because2\sum_{k = 1}^{dep - 1}h[k] *r[k] = \frac{2}{r[dep]} * \sum_{k = 1}^{dep - 1}h[k]*r[k]*r[dep]\geqslant \frac{2}{r[dep]} *\sum_{k = 1}^{dep - 1}h[k]*r[k]^2\geqslant \frac{2(n - v)}{r[dep]}\)

\(\therefore\)当$ \frac{2(n - v)}{r[dep]} + s \geqslant ans$时说明已经不是最优,即可return

这是对前\(dep - 1\)层侧面积的估计,很多人忽略了这一维度,其实,这一维度已经在我们预处理\(ini\)

(别激动,\(init\)删去\(t\)而已23333)时已经有所涉及,只是我们没有太在意而已

这告诉我们在设计剪枝条件的时候一定要全方面考虑

,每个维度都有所思考,尽可能到达上下界

return 0;//功德圆满

题解 NOI1999【生日蛋糕】—— 洛谷的更多相关文章

  1. 【题解】【洛谷 P1967】 货车运输

    目录 洛谷 P1967 货车运输 原题 题解 思路 代码 洛谷 P1967 货车运输 原题 题面请查看洛谷 P1967 货车运输. 题解 思路 根据题面,假设我们有一个普通的图: 作图工具:Graph ...

  2. Codevs 1710 == POJ 1190 生日蛋糕 == 洛谷P1731

    生日蛋糕 时间限制: 2 s  空间限制: 128000 KB  题目等级 : 大师 Master 题目描述 Description 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ ...

  3. [题解] LOJ 3300 洛谷 P6620 [省选联考 2020 A 卷] 组合数问题 数学,第二类斯特林数,下降幂

    题目 题目里要求的是: \[\sum_{k=0}^n f(k) \times X^k \times \binom nk \] 这里面出现了给定的多项式,还有组合数,这种题目的套路就是先把给定的普通多项 ...

  4. [题解] BZOJ 3456 洛谷 P4841 [集训队作业2013]城市规划 多项式,分治FFT

    题目 令\(f_i\)表示n个点的答案.考虑容斥,用所有连边方案减去有多个连通块的方案.枚举1号点所在的连通块大小: \(f_i=2^{i(i-1)/2}-\sum_{j>0}^{i-1}f_j ...

  5. BZOJ3675 & 洛谷3648 & UOJ104:[Apio2014]序列分割——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3675 https://www.luogu.org/problemnew/show/P3648 ht ...

  6. 【CJOJ1494】【洛谷2756】飞行员配对方案问题

    题面 题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员,其中1 名是英国飞行员,另1 ...

  7. 洛谷2973 [USACO10HOL]赶小猪Driving Out the Piggi… 概率 高斯消元

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - 洛谷2973 题意概括 有N个城市,M条双向道路组成的地图,城市标号为1到N.“西瓜炸弹”放在1号城市,保证城 ...

  8. 【洛谷】【单调栈】P4333 [COI2007] Patrik

    --接上一篇题解,[洛谷][单调栈]P1823音乐会的等待 关于题目大意在上一篇题解里已经说清楚了,这里不再多阐述 想看题目->戳这里 [算法分析:] 在对元素a进行判断时,如果它与栈顶元素相等 ...

  9. 洛谷 P1056 排座椅 桶排序

    桶排序大法好! 每次一看到这种范围小的题,本萌新就想用桶排. 因为题目中的m,n都小于1000,我们就可以定义两个1000的数组,表示每一行或每一列可以隔开几对讲话的童鞋. 然后再定义两个1000的数 ...

  10. 洛谷 P1045 【麦森数】快速幂

    不用快速幂,压位出奇迹! 本人是个蒟蒻,不太熟悉快速幂,这里给大家介绍一种压位大法. 让我们来分析一下题目,第一位是送分的,有一个专门求位数的函数:n*log10(2)+1. 然后题目中p<=3 ...

随机推荐

  1. SHELL用法六(Find语句)

    1.SHELL编程Find语句案例实战 1)SHELL编程四剑客工具:Find.Grep.Sed.Awk,通过四剑客可以完成常规Linux指令无法完成或者比较复杂的功能,学好SHELL编程四剑客有助于 ...

  2. absorb|state|

    ADJ-GRADED 极感兴趣的:专心的:全神贯注的If you are absorbed in something or someone, you are very interested in th ...

  3. Java IO: PipedOutputStream

    原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) PipedOutputStream可以往管道里写入读取字节流数据,代码如下: 01 Outp ...

  4. cesium入门示例-HelloWorld

    示例准备: 在Cesium ion官网(https://cesium.com/)上注册用户,获取AccessToken,在js代码入口设置Cesium.Ion.defaultAccessToken,即 ...

  5. MyBatis if test 传入一个数字进行比较报错 There is no getter for property named 'userState' in 'class java.lang.Integer'

    在写MyBatis映射文件中,我要传入一个 int 类型的参数,在映射文件中用 'test' 中进行比较,我花了很长时间百度,发现都是不靠谱的方法,有把数字在比较时转成字符串用 equals 比较的. ...

  6. springboot oauth 鉴权之——授权码authorization_code鉴权

    近期一直在研究鉴权方面的各种案例,这几天有空,写一波总结及经验. 第一步:什么是 OAuth鉴权 OAuth2是工业标准的授权协议.OAuth2取代了在2006创建的原始OAuthTM协议所做的工作. ...

  7. 工业界 vs. 学术界: 一个年轻员工的视角

    本文发表于<中国计算机学会通讯>2015年第5期,转载已获得授权 作者:菲利普·郭 (Philip Guo),美国罗切斯特大学助理教授 译者:​王长虎,微软亚洲研究院主管研究员 如果你即将 ...

  8. MAC使用nginx分发80至8080端口

    由于项目必须要启动80端口,但是mac系统中非root用户无法直接使用1024以下的端口 2.释放apache的80端口 由于Mac OS是自带Apache服务的,它本身占用了80端口,首先你需要将A ...

  9. sycPHPCMS v1.6 cookie sqlinjection

    ./user/index.php include "../include/conn.php"; include "../include/function.php" ...

  10. 基于 HTML5 Canvas 的 3D 热力云图效果

    前言 数据蕴藏价值,但数据的价值需要用 IT 技术去发现.探索,可视化可以帮助人更好的去分析数据,信息的质量很大程度上依赖于其呈现方式.在数据分析上,热力图无疑是一种很好的方式.在很多行业中都有着广泛 ...