码迷,mamicode.com
首页 > 其他好文 > 详细

2. 分段函数的面积与高度

时间:2020-05-10 10:49:56      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:tle   iostream   alt   说明   else   不难   nbsp   lse   ==   

2. 分段函数的面积与高度

【问题描述】

       给定笛卡尔坐标平面上的 2n+1 个点的集合,点的编号从 0 到 2n,设 Pi  是第 i 个点,Pi 的 x 坐标为 i ,初始时点 Pi  的 y 坐标为 0,也就是在开始时Pi=(i, 0)。

       给定的点为一个分段函数的顶点,函数的第 j 段为 PjPj+1

       可以将该函数作变动处理,每次可以将某个 x 坐标为奇数(也就是点 P1、P2、...、P2n-1)的点的 y 坐标加 1,注意相应图形也会发生变化。

       例如,下图中为一个 =3 的函数(点的个数为2*3+1=7),在其中将 P1 点的 y 坐标作了三次变动,P5 点的 y 坐标作了一次变动。

 

技术图片

       将该图形的面积设为该图形下方的区域和坐标轴 OX 之上的区域。例如,上面图形的图的面积是 4 (上面的图形上的淡蓝色区域)。 

       设图形高度为所有初始点(P0、P1、...、P2n)中 y 坐标的最大值,上面图形的高度为 3 。

       请找出由 2n+1 个顶点组成的图形的面积为 k 的最小可能的高度,不一定是最小的变动次数。

       不难理解通过对图形进行上述描述的变动总是可以得到指定结果。

 【输入形式】

       输入的第一行包含两个整数 n 和 k(1n、k≤1018),分段函数的顶点个数以及希望获得的图形面积。
【输出形式】

       输出为一个整数,表示获得图形面积 k 的最小可能的图形高度。
【样例输入1】

4 3

【样例输出1】

1

 

【样例输入2】

4 12

【样例输出2】

3

【样例说明】

样例1:

技术图片

样例2:

技术图片

 

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     long long n, k;
 7     cin >> n >> k;
 8     if(n >= k)
 9     {
10         cout << 1;
11     }
12     else
13     {
14         if(k % n == 0)
15             cout << k / n;
16         else
17             cout << k / n + 1;
18     }
19 }

 

2. 分段函数的面积与高度

标签:tle   iostream   alt   说明   else   不难   nbsp   lse   ==   

原文地址:https://www.cnblogs.com/sunbines/p/12862293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!