我们先看一下题目:

(有没有和我一样的朋友看到这道题以为是几何不可做题

这个题目真的很难理解,并且样例也给得太水了吧!

理解题目是必不可少的(这并不是你看了半小时题目的理由)——首先我们先简化题目

1:有n个连续函数fi(x)这句话放在平面直角坐标系内就是有n条直线(应该挺好理解的这句话)

2:对于任意fi(x)和fj(x),都有一个值x使两个相等等同与任意两条直线交于一点

3:不存在fi(x)=fj(x)=fk(x)就是不会有三条及以上的直线交于同一点

我们在这里便做一个总结:
题目给我们的意思是——在一个平面直角坐标系内有n条直线,两两相交于一点,不存在三条及以上的直线交于同一点;

接下来我们再解释第几层——

我们便以样例的图来说明:

我们先将这三条线段画出来,将他们的交点来聚焦,再将三条线段染上颜色,层数怎么划分应该很明显了吧(着实不是很好理解,可以自己多手画几幅图)

我们看重点,也就是题目所求我们应该怎么办——

  依旧是上面那副图,首先我们看第一层(蓝色),不用想,这一层的最小值是2,同理第二层(绿色)的最小值是4。

然后我们看第三层(你是不是以为我又要同理说是3了),这道题最神奇的地方就在这。

 我们完全可以将这幅图旋转一下,这时第三层就变成了原先的第一层,最小值也就是2了。看到这里,我们便发现了一个重要性质:答案具有对称性!具体来说是k(k<n/2)与n-k+1的答案一样!

所以我们只需要思考前n/2的答案就可以。

 我们看到这张图 我们可以发现第一层1个点,第二层2个点,第三层3个点.......我们可以证明这样一定是最优的,首先两点必定交于一点,那么第一层便只有一个点,在第二层假如最小不为2,那就是1~2-1中的一个(在第二层看来其实就是1啦)但是第二层需要第三条线,如果不为2那么第三条线与第一,第二条线的交点就为1,那么就与题目中的不存在fi(x)=fj(x)=fk(x)相矛盾,同样的我们可以这样一直扩展,可以得知假如第k(k<n/2)层的交点数比k小,那么必有三线或三线以上交于同一点,与题目矛盾,所以第k(k<n/2)层最小为k点。

看图得知:为这一层的线段有关的点不仅包括本层还与上一层有关。

所以可知:第一层:1

第二层:1+2

第三层:2+3

。。。。。。

又因为线段数为点数加1,我们便得到了最终答案:2,4,6,8.......。

所以我们可以归纳一下:n==1时 答案=1;

n!=1&&k<=n/2时,答案=2*k;

n!=1&&k>n/2时,答案=2*(n-k+1);
所以就可以愉快的贴代码啦

#include<iostream>
#include<cstdio>
using namespace std;
long long n,k,ans;
int main()
{
scanf("%lld%lld",&n,&k);
if(n==1)
printf("1");
else
if(k<=n/2)
printf("%lld",2*k);
else
printf("%lld",2*(n-k+1));
return 0;
}

Funcition

(果然结论题代码都很短啊)

(那么慢走)

(不懂可以加qq2733524923我们一起探讨)

[Bzoj 1432] [ZJOI2009]Function(结论推导题)的更多相关文章

  1. BZOJ 1432: [ZJOI2009]Function(新生必做的水题)

    1432: [ZJOI2009]Function Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1205  Solved: 895[Submit][Sta ...

  2. BZOJ 1432: [ZJOI2009]Function

    1432: [ZJOI2009]Function Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1046  Solved: 765[Submit][Sta ...

  3. bzoj 1432 [ZJOI2009]Function 思想

    [bzoj1432][ZJOI2009]Function Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sampl ...

  4. bzoj 1432 [ZJOI2009]Function(找规律)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1432 [思路] 找(cha)规(ti)律(jie) 分析戳这儿 click here ...

  5. 1432: [ZJOI2009]Function

    1432: [ZJOI2009]Function Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 710  Solved: 528[Submit][Stat ...

  6. bzoj千题计划138:bzoj1432: [ZJOI2009]Function

    http://www.lydsy.com/JudgeOnline/problem.php?id=1432 http://blog.sina.com.cn/s/blog_86942b1401014bd2 ...

  7. 【BZOJ1432】[ZJOI2009]Function(找规律)

    [BZOJ1432][ZJOI2009]Function(找规律) 题面 BZOJ 洛谷 题解 这...找找规律吧. #include<iostream> using namespace ...

  8. UVA - 10014 - Simple calculations (经典的数学推导题!!)

    UVA - 10014 Simple calculations Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...

  9. [BZOJ 2759] 一个动态树好题

    [BZOJ 2759] 一个动态树好题 题目描述 首先这是个基环树. 然后根节点一定会连出去一条非树边.通过一个环就可以解除根的答案,然后其他节点的答案就可以由根解出来. 因为要修改\(p_i\),所 ...

随机推荐

  1. 禅道开源版 Ldap认证插件开发

    禅道开源版-Ldap插件开发 背景 由于开源版无法使用ldap认证,所以在此分享一下自己开发禅道的ldap开发过程,希望对你有所帮助. 简单说一下这个插件的功能: 1.跳过原有禅道认证,使用ldap认 ...

  2. JavaScript05

    显示和隐藏 元素的显示和隐藏 元素display属性可控制元素的显示和隐藏,先获取元素对象,再通过点语法调用style对象中的display属性 语法格式: 元素.style.display='non ...

  3. 【Spring】Spring重要类层次图

  4. the Agiles Scrum Meeting 3

    会议时间:2020.4.11 21:30 1.每个人的工作 今天已完成的工作 yjy:基本实现广播功能的前端 issues:小组任务1-增量开发组 wjx:基本实现注销功能的后端 issues:小组任 ...

  5. flutter页面间跳转和传参-Navigator的使用

    flutter页面间跳转和传参-Navigator的使用 概述 flutter中的默认导航分成两种,一种是命名的路由,一种是构建路由. 命名路由 这种路由需要一开始现在创建App的时候定义 new M ...

  6. 2019.03.27【GDOI2019】模拟 T3

    题目大意 给出$n$, $p$, 求有多少长度为$n$的排列可以被分成三个上升子序列, 数量对$p$取模, 数据范围 $3 \leq n \leq 500$. 思路 首先让我们考虑如果有一个排列,如何 ...

  7. Shell脚本学习笔记之(自动填充函数模板)

    其实,vii 就是写的一个脚本,跟 vi 没半毛钱关系,只不过借用一下这个名字而已.那这个脚本长什么样呢?look: 下面来详细的解析上面的代码,来看第1行: #!/bin/bash 这是Shell脚 ...

  8. vcs(UST)Undefined System Task Call

    转载:VCS求助啊 - 微波EDA网 (mweda.com) Error-[UST] Undefined System Task Call../../path/bench/path.v, 51Unde ...

  9. 链表中环的入口结点 牛客网 剑指Offer

    链表中环的入口结点 牛客网 剑指Offer 题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. # class ListNode: # def __init__(se ...

  10. NOIP模拟88(多校21)

    前言 对于这套题的总体感觉就是难,然后就是自己很菜... 对于 T1 考试时只会一个最垃圾的背包,考完之后对于思路这一块也不是很顺利,大概这就是薄弱的地方吧. 然后 T2 是比较简单的一道题了,但是考 ...