题解-洛谷P1731[NOI1999]生日蛋糕
题目做法
思路
这道题使用的是 DFS(深搜):
我们可以从下向上进行搜索,同时记录上一次搜索的 $h$(高度) 和 $r$(半径)。
当我们搜索到最上面一层了之后,就判断答案是否合法,如果合法就保存最小值。
于是我们就有一个最基础的搜索思路
我们可以写一个DFS函数传入五个变量,$(x, s, v, last_h, last_r)$ 分别表示我们当前搜索的蛋糕层数,已经使用的表面积,已经使用的体积,上一层的高度,上一层的半径
显然它有着一个及其庞大的决策库,我们直接搜索是会 $TLE$ 的
剪枝
可行性剪枝:如果沿着当前思路永远做不出满足条件的蛋糕呢?
最优化剪枝:如果沿着当前思路蛋糕一定不比我们之前做出来的表面积更小呢?
所以可以总结为:
① 要是剩下体积除以最大(虽然取不到)半径所得到的表面积+累计表面积大于答案,就 $return$
② 要是剩下来的体积已经小于该层最小体积了就 $return$
③ 还有为了剪枝,我们要起先预处理某一层的最大不可的表面积和体积
标程讲解
略写
1234567891011121314151617181920212223 ...
浅谈STL链表及手写链表
介绍
链表是一种用于存储数据的数据结构,通过如链条一般的指针来连接元素。它的特点是插入与删除数据十分方便,但寻找与读取数据的表现欠佳。
优点
链表的优点还是非常明显的:
它可以迅速地在任何节点进行插入和删除操作,因为 list 的每个节点保存着它在链表中的位置,插入或删除个元素仅对最多三个元素有所影响。
缺点
list 随机检索的性能非常的不好,因为它不像vector那样直接找到元素的地址,而是要从头一个一个的顺序查找。
list 支持双向迭代器,没有下标,必须使用迭代器遍历list。(由于不支持随机迭代器,不能写迭代器 +x,迭代器 -x,不能用 sort 函数,但 list 拥有 sort 成员函数)。
STL 链表
个人认为 STL链表 非常适合使用,就比如你喜欢使用 string 而不是 char[] 。但是它一部分功能实际上并没有手写链表好用,比如需要 STL迭代器 遍历等等。
成员函数描述
常用成员函数
函数名
函数说明
push_back(元素)
往链表尾部添加元素
push_front(元素)
往链表头部添加元素
pop_back(元素)
...
题解 - 洛谷P8815
这篇博客将针对 2022 年 CSP-J 的第三题进行讲解。
这一道题的类型是什么?查看答案
当然是大模拟
最讨厌这种算法了,思路简单,但实现困难。
审题
题目还是比较容易理解的,只是文字较长得有耐心的读。
简明题面
给你一个逻辑表达式,包含 0 和 1 ,还有运算符 & 与 |。
其运算规则如下:
$0 \mathbin{&} 0 = 0 \mathbin{&} 1 = 1 \mathbin{&} 0 = 0$,$1 \mathbin{&} 1 = 1$;
$0 \mathbin{|} 0 = 0$,$0 \mathbin{|} 1 = 1 \mathbin{|} 0 = 1 \mathbin{|} 1 = 1$。
表达式要求从优先运算括号内的。两种运算并列时,& 运算优先于 | 运算;同种运算并列时,从左向右运算。
然后要求你求出这个表达式最后的结果,并记录短路次数。
warning 提示块标签
111
Hello World
欢迎来到 Alan-CRL 的博客,从今天开始我就会在这里打造非常多有意思的内容了!
欢迎收藏!!!
