2. 分段函数的面积与高度
Posted sunbines
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2. 分段函数的面积与高度相关的知识,希望对你有一定的参考价值。
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,注意相应图形也会发生变化。
例如,下图中为一个 n =3 的函数(点的个数为2*3+1=7),在其中将 P1 点的 y 坐标作了三次变动,P5 点的 y 坐标作了一次变动。
将该图形的面积设为该图形下方的区域和坐标轴 OX 之上的区域。例如,上面图形的图的面积是 4 (上面的图形上的淡蓝色区域)。
设图形高度为所有初始点(P0、P1、...、P2n)中 y 坐标的最大值,上面图形的高度为 3 。
请找出由 2n+1 个顶点组成的图形的面积为 k 的最小可能的高度,不一定是最小的变动次数。
不难理解通过对图形进行上述描述的变动总是可以得到指定结果。
【输入形式】
输入的第一行包含两个整数 n 和 k(1≤n、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. 分段函数的面积与高度的主要内容,如果未能解决你的问题,请参考以下文章