码迷,mamicode.com
首页 > 其他好文 > 详细

1432: [ZJOI2009]Function

时间:2015-05-03 23:29:30      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

1432: [ZJOI2009]Function

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 710  Solved: 528
[Submit][Status][Discuss]

Description

技术分享

Input

一行两个整数n; k。

Output

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

Sample Input

1 1

Sample Output

1

HINT

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

Source

 

题解:一道神奇的规律题(HansBug:感觉JSOI2015 Round2 Day1 T1都没这个题目神orz)

题解直接饮用吧,源链接再次,鸣谢BLADEVIL神犇么么哒

我们可以发现所有的情况(除n=1时),都可以找到两个交叉的直线,就是第一层的那

两个线段所在的直线如图中左

技术分享

那么我们以这个为准,两边对称着加直线,会得到右图,每一层是折线,且每

加一对儿就多两条线段,一共要加k对儿,所以答案是2*k,由于图是对称的,就是

这张图从上往下看和从下网上看是对称的,所以上面第k个是下面第n-k+1个,所以

比较下这两个大小,k取min然后输出2*k就行了

 1 /**************************************************************
 2     Problem: 1432
 3     User: HansBug
 4     Language: Pascal
 5     Result: Accepted
 6     Time:0 ms
 7     Memory:220 kb
 8 ****************************************************************/
 9  
10 var
11    m,n:longint;
12 begin
13      readln(n,m);
14      case n of
15           1:writeln(1);
16           else if (n+1)<(m*2) then writeln((n-m+1)*2) else writeln(2*m);
17      end;
18 end.

 

1432: [ZJOI2009]Function

标签:

原文地址:http://www.cnblogs.com/HansBug/p/4474913.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!