#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<stack>

#define MAXN 1005

using namespace std;

unsigned long long  f[MAXN][MAXN],w[MAXN];

int num[MAXN];

#define FZ(i,p)(f[i-1][p]+num[p+1]*num[p+1])

int i,p;

int que[MAXN],tail,head;

int n,m,j;

bool turnup(int i,int p1,int p2,int p3) //p1>p2>p3

{

    unsigned long long y1=FZ(i,p1),x1=num[p1],y2=FZ(i,p2), x2=num[p2], y3=FZ(i,p3), x3=num[p3];

    if((x2-x3)*(y1-y2)>(x1-x2)*(y2-y3))return 1;

    else return 0;

}int ii,nn;

int main()

{   scanf("%d",&nn);

    for(ii=1;ii<=nn;ii++)

    {

    scanf("%d%d",&n,&m);

     

    for(int i=1;i<=n;i++)

    {

        scanf("%d",&num[i]);

    }

    sort(num+1,num+n+1);

    for(i=1;i<=n;i++)

      f[0][i]=(num[i]-num[1])*(num[i]-num[1]);

 

    for(int i=1;i<=m;i++){

        head=tail=1;

        que[tail++]=0;

 

  for(int j=1;j<=n;j++){

        while(head<tail-1&&FZ(i,que[head+1])-FZ(i,que[head])<2*num[j]*(num[que[head+1]]-num[que[head]]))

            head++;

    int k=que[head];

    f[i][j]=f[i-1][k]+(num[j]-num[k+1])*(num[j]-num[k+1]);

    while(head<tail-1&&turnup(i,j,que[tail-1],que[tail-2])==0)

    tail--;

    que[tail++]=j;

    }

    }

    printf("%I64d\n",f[m][n]);

    }

}

  

fdssd的更多相关文章

  1. HTML5标签选择,图文混排使用dl dt dd

    图文混排,可以使用 dl dt dd(dd 和 dt 是同级,不可以嵌套,没有先后顺序) 1,上面红色部分是标题,可以使用h1里面包含一个span标签,样式一样,所以两个可以一起写. 2,上面黑色部分 ...

  2. C#基础学习(二)

    ---恢复内容开始--- 面向对象 (类是不占内存,实例占内存) C#与python不用可以直接从另一个文件直接实例化一个类,不需要导包:                                ...

随机推荐

  1. React Hooks 笔记1

    useState const [state, setSate] = useState(initialState) 特征: setState 标识稳定,组件重新渲染时不会变化,useState 返回的第 ...

  2. html5的页面在IOS中,按钮 变成圆角怎么办?

      在button的css 中添加: -webkit-appearance: none;     border: none;     border-radius: 0; ok 的啦   文章来源:刘俊 ...

  3. 【Python】七段数码管绘制问题

    问题分析: 绘制路径: 代码: import turtle #引入绘图库turtle def drawLine(draw): #绘制单段数码管 turtle.pendown() if draw els ...

  4. 搜索 rerank : learn to rank 算法

    (1)LambdaMART 算法可参考如下两篇博客: http://www.cnblogs.com/wowarsenal/p/3900359.html http://www.cnblogs.com/w ...

  5. thinkphp3.2短信群发项目实例

    项目功能是企业给客户群发短信,我就写这么多,也不知道你能不能运行成功,如果有问题可以在QQ上问我:605114821 项目文件SMS_V2.zip下载地址,百度云:http://yun.baidu.c ...

  6. 设置display:inline-block 元素间隙

    上代码: <div class="page"> <a href="" class="num">共1231条</ ...

  7. 手把手带你开发一款 IIS 模块后门

    https://cloud.tencent.com/developer/article/1507913 首先准备工具 VS2017 IIS 开始开发 先打开 VS 创建一个 winfrom 项目然后添 ...

  8. 对one hot 编码的理解,sklearn. preprocessing.OneHotEncoder()如何进行fit()的?

    查阅了很多资料,逐渐知道了one hot 的编码,但是始终没理解sklearn. preprocessing.OneHotEncoder()如何进行fit()的?自己琢磨了一下,后来终于明白是怎么回事 ...

  9. 51Nod 1182 完美字符串 (贪心)

    约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同. ...

  10. the first week

    一.2019我国软件产业调研 2019年1-11月,全国软件和信息技术服务业规模以上企业4.03万家,累计完成软件业务收入64616亿元,同比增长15.5%. 从收入便可以看出软件产业的发展前景还是十 ...