【链接】
bzoj1432
【题目大意】
给你n个一次函数fi(x),使对于
i!=j,fi(x)(<)fj(x),1<=i<j<k<=n
不存在
fi(x)=fj(x)=fk(x)
。
【解题报告】
其实这道题本蒟蒻是找规律找出来的。其实最优的添边方法就是对于Fn(x),经过函数Fn-1(x)的最中间的线段,并且不影响
Fi(x)(1<=i<n−1)
的段数,这样添边就只使Fn-1(x)扩大了2倍。
如图所示:
然后考虑最优解时,可以发现一张图可以正过来看也可以倒过来看。所以答案就是
min(k,n−k+1)<<1
,注意:n=1时特判。
如图所示:
#include<cstdio>
#include<algorithm>
using namespace std;
int n,k;
int main()
{
scanf("%d%d",&n,&k);
if (n==1) printf("1"); else printf("%d",min(k,n-k+1)<<1);
return 0;
}