OI技术宅

Tech Otakus save the world!
Welcome,my dear friends!
【I'm kiana/kiana810@126.com】

【NOI2000】瓷片项链

【题目描述】

原始部落用一种稀有的泥土烧制直径相同的圆瓷片并串成项链,串的时候沿瓷片的直径方向顺次连接,瓷片之间没有空隙也不重叠,一条项链至少由一个瓷片构成。

每个烧制的瓷片厚度是一定的,直径D和所用泥土的体积V有以下关系:

D=0.3*(V-V0)^0.5 (V>V0)

其中V0为烧制每一片的损耗,单位与V相同。当用料小于等于V0时,不能烧制成瓷片。

例: V总 = 10,V0 = 1,若烧制成一片瓷片,V = V总= 10,D = 0.9。如果把泥土均分成2份,每份泥土的体积为V = V总/2 = 5,单个瓷片的直径为0.6,串起来的总长为1.2。

给定了泥土的总体积和烧制单个瓷片的损耗,烧制的瓷片数不同,能够得到的项链总长度也不相同,请计算烧制多少个瓷片能使所得到的项链最长。

【输入】

文件仅有两行,每一行仅包含一个整数和一个换行/回车符。第一行的数字为泥土总体积V总,第二行为一个整数v0。

【输出】

文件中仅包含一个数字和一个换行/回车符。该数字为能获得最长项链而烧制的瓷片数。如果不能烧制成瓷片或者最优解不唯一(存在两个或者两个以上方案均能获得最长项链),输出数字0。

【输入样例】

10

1

【输出样例】

5

【题解】

设答案为X,则有L=0.3*sqrt(-v0*X^2+v总*X),则Xmax=v总/v0*2,四舍五入就是答案。注意当Xmax小数部分为0.5时,则有两个解,应该输出0。

【代码】

O(1)秒了,差点犯傻写三分。。

http://paste.ubuntu.com/8136679/

评论

© OI技术宅 | Powered by LOFTER