bzoj 1432 [ZJOI2009]Function 思想

【bzoj1432】[ZJOI2009]Function

Description

Input

一行两个整数n; k。

Output

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

Sample Input

1 1

Sample Output

1

HINT

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

 

找规律

之后每次增加一条线,都不会影响前k层的值,但是因为题目说任意两条直线不平行,于是一定会有交点

我们从上往下增加直线,当已经放了k-1条直线,在放第k条直线的时候,如果直线k和直线k-1的交点在k-1原有交点的右边,坑定会影响前面的答案,不

是最优,所以强行让交点在倒数第二个,不会影响f[k-1],而f[k]显然会因此增加了2(自己画一画)

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int n,k;
 5 int a[1000007];
 6 int main()
 7 {
 8     scanf("%d%d",&n,&k);
 9     if(n-k+1<k)k=n-k+1;
10     if(n==1)printf("1");
11     else printf("%d",2*k);
12 }

 

posted @ 2017-12-21 16:38  Kaiser-  阅读(114)  评论(0编辑  收藏  举报