【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 }