前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BZOJ1432: [ZJOI2009]Function(找规律)

BZOJ1432: [ZJOI2009]Function(找规律)

作者头像
attack
发布2018-07-04 12:24:50
4160
发布2018-07-04 12:24:50
举报

Time Limit: 5 Sec  Memory Limit: 64 MB

Submit: 1523  Solved: 1128

[Submit][Status][Discuss]

Description

有n个连续函数fi(x),其中1≤i≤n。对于任何两个函数fi(x)和fj(x),(i!=j),恰好存在一个x使得fi(x)=fj(x),

并且存在无穷多的x使得fi(x)<fj(x)。对于任何i;j;k,满足1≤i<j<k≤n,则不存在x使得fi(x)=fj(x)=fk(x)。

如上左图就是3个满足条件的函数,最左边从下往上依次为f1;f2;f3。右图中红色部分是这整个函数图像的最低层

,我们称它为第一层。同理绿色部分称为第二层,蓝色部分称为第三层。注意到,右图中第一层左边一段属于f1,

中间属于f2,最后属于f3。而第二层左边属于f2,接下来一段属于f1,再接下来一段属于f3,最后属于f2。因此,

我们称第一层分为了三段,第二层分为了四段。同理第三层只分为了两段。求满足前面条件的n个函数,第k层最少

能由多少段组成。

Input

一行两个整数n; k。1 ≤ k ≤ n ≤ 100。

Output

一行一个整数,表示n 个函数第k 层最少能由多少段组成。

Sample Input

1 1

Sample Output

1

HINT

Source

考虑最优的情况一定是在所有线段的中间插一条,因此每一层会多$2$个贡献

又因为正着和倒着是一样的,因此要从$n-k+1$和$k$中取个$min$

这里有图

https://blog.csdn.net/CHNWJD/article/details/71909581

代码语言:javascript
复制
#include<cstdio>
#include<algorithm>
using namespace std;
int main() {
    int N, K;
    scanf("%d %d", &N, &K);
    printf("%d", N == 1 ? 1 : (min(K, N - K + 1) << 1));
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-06-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Description
  • Input
  • Output
  • Sample Input
  • Sample Output
  • HINT
  • Source
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档