本文主要是介绍[unknown OJ] 迷途竹林,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、题目
点此看题
二、解法
答案是取决于最后竹子的高度的,我们可以二分最后竹子的高度来指导我们如果砍。
如图,把竹子理解成一个 h h h 上叠加了若干个 a a a,我们是想把 m i d mid mid 下面的老竹子砍掉的。对于每一刀,我们知道他至少要在哪一天砍(因为竹子需要等他长出来才能砍),对于每个竹子都可以暴力处理出每一刀在哪一天砍,时间复杂度 O ( m k ) O(mk) O(mk),最后随便判断一下刀是否够用就行了。
#include <cstdio>
#include <iostream>
using namespace std;
const int M = 100005;
#define int long long
int read()
这篇关于[unknown OJ] 迷途竹林的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!