bzoj1432_[ZJOI2009]Function
题目描述
有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)。
.png)
如上左图就是3 个满足条件的函数,最左边从下往上依次为f1; f2; f3。右图中红色部分是这整个函数图像的最低层,我们称它为第一层。同理绿色部分称为第二层,蓝色部分称为第三层。注意到,右图中第一层左边一段属于f1,中间属于f2,最后属于f3。而第二层左边属于f2,接下来一段属于f1,再接下来一段属于f3,最后属于f2。因此,我们称第一层分为了三段,第二层分为了四段。同理第三层只分为了两段。求满足前面条件的n 个函数,第k 层最少能由多少段组成。
输入输出格式
输入格式
一行两个整数n; k。
输出公式
一行一个整数,表示n 个函数第k 层最少能由多少段组成。
样例
INPUT
1 1
OUTPUT
1
HINT
SOLUTION
(#`O′)喂这样例也太水了点吧。
感谢zzr的友情支持。
推规律:自己多画几个图就出来啦(最好画到\(n=5\)以上吧,不然看不出啥规律),注意一下可以对称翻转整个图形即可。
数学证明:
首先,我们要求的是且仅是\(n\)条线,分出的第\(k\)层的最优解,所以,若能使我们的\(1~n/2\)层有最优解,由于对称性,将整个图形翻转过来之后,我们的\(n/2~n\)层一样也可以有最优解。
然后有一个特判:\(n=1\)时,\(ans=1\)
接下来我们要找的就是上半部分(也可以是下半部分,反正是某半边就可以了对吧)的最优解的求得方法。
数学归纳法证明:
[Warning]其实我并不太熟悉数学归纳法,如果有dalao对这篇题解有问题提出,欢迎一起讨论qwq但这好像姑且算个数学归纳法吧
我们首先可知在\(\forall n\in N_+(n\neq1)\)中,\(k=1时\)一定有\(ans=2\)
\(k>1\)时,对于\(k-1\)层,我们假使结论\(ans=2*(k-1)\)成立,
我们第\(k-1\)层现有的\(2*(k-1)\)段的每一段向原延伸方向延伸直至碰到下一个交点为止,于是得到了新的\(2*(k-1)\)段,而我们又知道,一个交点涉及的的有且只有两条直线,而易得我们每一层的两端必定是由无限远延伸来的射线,因为出现过的直线的线段就是由一个端点延伸而来,故这两条射线所在的直线应该是第一次出现,不能包含在原有的\(2*(k-1)\)段里,所以可以得出,对于第\(k\)层,我们有\(ans=2*k\)
命题得证。
#include <cstdio>
#include <iostream>
using namespace std;
int main(){
int n,k;
scanf("%d%d",&n,&k);
if (n==1) {puts("1");return 0;}
printf("%d\n",min(k*2,2*(n-k+1)));
return 0;
}
bzoj1432_[ZJOI2009]Function的更多相关文章
- BZOJ 1432: [ZJOI2009]Function
1432: [ZJOI2009]Function Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1046 Solved: 765[Submit][Sta ...
- 1432: [ZJOI2009]Function
1432: [ZJOI2009]Function Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 710 Solved: 528[Submit][Stat ...
- BZOJ 1432: [ZJOI2009]Function(新生必做的水题)
1432: [ZJOI2009]Function Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1205 Solved: 895[Submit][Sta ...
- 【BZOJ1432】[ZJOI2009]Function(找规律)
[BZOJ1432][ZJOI2009]Function(找规律) 题面 BZOJ 洛谷 题解 这...找找规律吧. #include<iostream> using namespace ...
- bzoj千题计划138:bzoj1432: [ZJOI2009]Function
http://www.lydsy.com/JudgeOnline/problem.php?id=1432 http://blog.sina.com.cn/s/blog_86942b1401014bd2 ...
- bzoj 1432 [ZJOI2009]Function 思想
[bzoj1432][ZJOI2009]Function Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sampl ...
- BZOJ1432 [ZJOI2009]Function
Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sample Input 1 1 Sample Output 1 H ...
- bzoj 1432 [ZJOI2009]Function(找规律)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1432 [思路] 找(cha)规(ti)律(jie) 分析戳这儿 click here ...
- 【构造】Bzoj1432[ZJOI2009]Function
Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sample Input 1 1 Sample Output 1 ...
随机推荐
- 如何正确理解SQL关联子查询
一.基本逻辑 对于外部查询返回的每一行数据,内部查询都要执行一次.在关联子查询中是信息流是双向的.外部查询的每行数据传递一个值给子查询,然后子查询为每一行数据执行一次并返回它的记录.然后,外部查询根据 ...
- swift bannerview 广告轮播图
class BannerView: UIView,UIScrollViewDelegate{ //图⽚⽔平放置到scrollView上 private var scrollView:UIScrollV ...
- 关于Linux下Oracle安装后启动的问题
1.首先,切换成oracle用户,启动监听服务.(中间的横杠必须加上,不然会出现command not found 的错误) 命令1:su - oralce 命令2:lsnrctl start 参 ...
- BBS配置
BBS配置 一.url路由 """BBS URL Configuration The `urlpatterns` list routes URLs to views. F ...
- 4.docker 简介
1.概念 docker 提供了一个开发 打包 运行 app 的平台 通过 docker engine 把 app 和底层infrastructure隔离开来 2.docker engine 所包含的内 ...
- jenkins-master-slave节点配置总结
一.jenkins分布式简单介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能 二.jenk ...
- 四十二、LAMP与LNMP web架构深度优化实战-第一部
1.nginx.conf配置文件基本参数优化 1.1 隐藏nginx header内版本号信息 一些特定的系统及服务漏洞一般都和特定的软件版本号有关,我们应尽量隐藏服务器的敏感信息(软件名称及版本等信 ...
- F - Fraction Formula Gym - 102307F
Mr. Potato Head has been promoted and now is a math professor at the UNAL. For his first course he i ...
- c语言中对字段宽度的理解?
/************************************************************************* > File Name: printf.c ...
- Uber坚持不盈利,葫芦里到底卖的是什么药?
近日,据媒体报道在美国科罗拉多州阿斯彭举办的<财富>科技头脑风暴大会上,Uber CEO达拉·科斯罗萨西表示,Uber无需在2019年下半年上市计划实施前保持盈利状态. 首先要明确一点的是 ...