博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ1432: [ZJOI2009]Function(找规律)
阅读量:5970 次
发布时间:2019-06-19

本文共 880 字,大约阅读时间需要 2 分钟。

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 1523  Solved: 1128
[][][]

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

 

 

#include
#include
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;}

 

你可能感兴趣的文章
移动端Web开发调试之Chrome远程调试(Remote Debugging)
查看>>
第四次作业
查看>>
sql常用语句
查看>>
OIer同样是音乐家
查看>>
JQury自动切换图片
查看>>
Uva 11732 strcmp()函数
查看>>
浅拷贝与深拷贝
查看>>
(转)所有iOS设备的屏幕分辨率
查看>>
三年从前端小工到架构-知乎 Live 学习整理
查看>>
C语言-数据数据类型、变量与常量
查看>>
《Linux内核设计与实现》读书笔记(十)- 内核同步方法【转】
查看>>
iOS故障排除指南:基本技巧
查看>>
这个五月,我拿到了腾讯暑期offer
查看>>
洛谷P1162 填涂颜色
查看>>
Zookeeper服务器集群的搭建与操作
查看>>
如何打印一个Struct来调试
查看>>
教大家如何去做外链才是最好的
查看>>
构建iOS稳定应用架构时方案选择的思考,主要涉及工程结构,数据流思想和代码规范...
查看>>
SSH和SSL比较
查看>>
java 构造方法
查看>>