NOIP2018 模擬賽day1 塔

2021-08-18 07:27:54 字數 1179 閱讀 5325

小 a 想搭乙個體積不超過 m 的塔, 他有各種大小的立方積木, 比

如邊長為 a 的積木, 體積為 a^3, 現在小 a 需要你給乙個 x, 每次小

a 會用乙個體積不超過 x 的最大積木, 依次到搭好為止, 現在他想最

大化積木的個數, 同時在積木個數最大的情況下使 x 最大。

—這道題只有那麼神奇了,寶寶看了n久n久都沒懂,最後細細分析了一下樣例,哦…..

—然後兩種方法冒出來了:1.列舉(30分) 2.dp(100分)

dp:

–假設我們現在可以用的體積是left,那麼我們有兩種選擇方式

1.放一塊體積最大(a),但不超過left的積木

—這時剩下的體積是:left-a^3

2.直接把剩下的體積強行變成a^3

—這時剩下的體積是:a^3−1−(a−1)^3

具體證明如下:

因為a^3-1-(a-1)^3恆大於(a-1)^3-1-(a-2)^3,我們又要保證積木最多,及要使left盡量大,所以用選前者,但是,我們並不能知道m-a^3與其的大小關係,所以也要計算

pow(x,1.0/y)可以求x的根號下y次方

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn=1;

long

long m;

long

long x,ans;

long

long cf(long

long a)

void dp(long

long left,long

long now,long

long sum)

return ;

}long

long a=(long

long)pow(left,1.0/3);

dp(left-cf(a),now+1,sum+cf(a));

dp(cf(a)-1-cf(a-1),now+1,sum+cf(a-1));

}int main()

NOIP2018 模擬測試 day1 弓箭手

題目 弓箭手弓箭手 smallr 和 zanoes 在進行一場比賽。他們輪流射擊,smallr 先射。每次射擊,smallr 都有 a b 的概率命中靶心,而 zanoes 有 c d 的概率命中靶心。先命中靶心的贏得比賽。求 smallr 贏得比賽的概率。思路 似乎,只用在 0,1 區間操作好多好...

鋪設道路(NOIP2018提高組day1)

春春是一名道路工程師,負責鋪設一條長度為 n 的道路。鋪設道路的主要工作是填平下陷的地表。整段道路可以看作是 n 塊首尾相連的區 域,一開始,第 i 塊區域下陷的深度為 d id i di。春春每天可以選擇一段連續區間 l,r l,r l,r 填充這段區間中的每塊區域,讓其下陷深 度減少 1。在選擇...

NOIP2018模擬賽2018 10 18 輕功

description 題目背景 尊者神高達進入了基三的世界,作為乙個 mmorpg 做任務是必不可少的,然而跑地圖卻令人十分不爽。好在基三可以使用輕功,但是尊者神高達有些手殘,他決定用梅花樁練習輕功。題目描述 一共有 n 個木樁,要求從起點 0 開始,經過所有梅花樁,恰好到達終點 n,尊者神高達一...