fdssd
时间:2019-09-27
本文章向大家介绍fdssd,主要包括fdssd使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#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]); } }
原文地址:https://www.cnblogs.com/Lamboofhome/p/11595519.html
- KVM+Qemu+Libvirt实战
- 内核级虚拟化技术
- tomcat配置ROOT目录和多站点
- IntelliJ IDEA使用(一)基本设置与类、方法模板设置
- JS魔法堂:从void 0 === undefined说起
- Maven(三)在Eclipse中使用Maven与Maven坐标
- Nginx多站点设置及负载均衡
- Maven(二)Maven项目的创建(命令、myeclipse)及生命周期
- JS魔法堂:初探传说中的setImmediate函数
- 配置nginx.conf实现负载均衡
- Maven(一)初识Maven
- MySQL(十一)之触发器
- 用CSS3在火狐浏览器中实现倒影
- MySQL(十)之视图
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 院长智能部署Frp内网穿透---支持多系统
- dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 重复 id 标识处理
- Magicodes.IE之花式导出
- vue列表点击切换颜色
- JVM加载过程科普
- 我没学过计算机,是怎么接了四个私活还挣了两个 iPad 的?
- Helm安装Prometheus Operator
- 【每日一题】【vue2源码学习】vue如何检测数组的变化
- JavaScript 实现输入框内容一键复制(附上 Vue 3 实现方式)
- python 迭代器/iterator与生成器/generator的区别
- CSS 实现文本超出容器范围用省略号显示(单行+多行)
- ESP8266和ROS收发消息读取模拟量控制LED亮度
- 纯 CSS 实现下拉菜单尖角图标(实心+空心)
- 3分钟短文:书接上回,Laravel数据库迁移的那些个小技巧
- 解密 Docker 挂载文件,宿主机修改后容器里文件没有修改