zoukankan      html  css  js  c++  java
  • BZOJ 1432 [ZJOI2009]Function

    1432: [ZJOI2009]Function

    Description

    Input

    一行两个整数n; k。

    Output

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

    Sample Input

    1 1

    Sample Output

    1

    HINT

    对于100% 的数据满足1 ≤ k ≤ n ≤ 100。


      很明显这是一道结论题。又是愣没想出来,以下来自:http://blog.csdn.net/zmoiynlp/article/details/44226459

      n=1的时候输出1,其余时候输出2*k,

      假如k>(n>>1)的话,令k=n-k+1(因为1和n-1是对称的)。
      为什么呢……
      我们画一个图。(这个图是很经典的)

      这是5条直线(函数)。可以看到,这些点以
      A
      BC
      DEF
      GHIJ
      的方式排列。
      第一个部分只经过A(这样一定是最优的)
      第二个部分只经过BAC
      第三个部分只经过DBECF……
      1
      1+2
      2+3
      3+4……
      线段数比点数多一,所以就是
      2
      4
      6
      8……
      特别地,当n=1时是1。

      当然,对于结论题,代码往往都很短……

      当时图已经画出来了,但因为题目中的“连续函数”(天知道是不是线性的),卡了很久。但现在一想,只有线性最优啊……

      我又先看了题解,罪过啊……

     1 /************************************************************** 
     2     Problem: 1432 
     3     User: Doggu 
     4     Language: C++ 
     5     Result: Accepted 
     6     Time:0 ms 
     7     Memory:820 kb 
     8 ****************************************************************/
     9   
    10 #include <cstdio> 
    11 #include <algorithm> 
    12 int n, k, a; 
    13 int main() { 
    14     scanf("%d%d",&n,&k); 
    15     if(n==1) a=1; 
    16     else if(k<=(n>>1)) a=2*k; 
    17     else a=2*(n-k+1); 
    18     printf("%d
    ",a); 
    19     return 0; 
    20 }
    结论题

      

  • 相关阅读:
    angular-指令
    microbit 范例课程
    microsoft 为microbit.org 设计的课程
    Microbit 翻译计划及IDE 中文化
    Microbit MicroPython 介绍
    micro:bit 软件生态系统介绍
    Microbit 硬件架构介绍
    TCP协议和UDP协议下的socket
    爬虫-链家二手房
    函数相关
  • 原文地址:https://www.cnblogs.com/Doggu/p/bzoj1432.html
Copyright © 2011-2022 走看看