E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
K-Anonymous
poj 3709
K-Anonymous
Sequence
终于把最后一道优化DP的题目做了,斜率优化之前掌握的不是非常熟练呀。 朴素方程:f[i]=min{f[k]+s[i]-s[k]-a[k+1]*(i-k)}。 就这么一个朴素方程的化简,搞了很久。 把减号写成加号导致化简完全错误,纠结于直接用double还是用int64的x和y,后来有纠结于≤和≥的问题。这才完全搞定斜率优化。不错的题目。 代码: var q,f,s,a:array
·
2015-11-13 09:55
sequence
K-Anonymous
Sequence(poj 3709)
http://poj.org/problem?id=3709 给定一个长度为n的非严格单调递增数列a1,...,an.每一次操作可以使数列中的任何一项的值减小1。现在要使数列中的每一项都满足其他项中至少有k-1项和它相等。求最少要对这个数列操作的次数。 输入:第一行为测试数据的组数T(1 ≤ T ≤ 20) 每组测试数据包含两行
·
2015-11-12 10:18
sequence
POJ 3709
K-Anonymous
Sequence(单调队列)
题目链接:http://poj.org/problem?id=3709 题意:给定一个不下降数列,一个K,将数列分成若干段,每段的数字个数不小于K,每段的代价是这段内每个数字减去这段中最小数字之和。求一种分法使得总代价最小? 思路:dp[i]=min(dp[j]+sum[i]-sum[j]-(i-j)*a[j+1])。那么对于两个j1,j2,若j1<j2但是j2比j1更优,那么可得:(d
·
2015-11-11 14:16
sequence
POJ 3709
K-Anonymous
Sequence
题目大意:将一个升序的,有N个元素的序列,分组。要求每组的元素不少于K个,计算出组内各元素与最小元素的之差的和,将每组的这个值加起来,其和要最小。 N<500000,K<N 分析: dp[i]=MIN(dp[j]+sum[i]-sum[j]-(i-j)*arr[j+1]); 令y=dp[j]+sum[i]-sum[j]+j*arr[j+1],x=arr[j+1],b=i,
·
2015-11-11 02:12
sequence
POJ 3709
K-Anonymous
Sequence
POJ_3709 这个是我第一次做斜率优化的题目,下面的题解没有涉及基本的思路,只是谈了一些自己的感悟。 个人感觉斜率优化+单调队列最重要的就是维护了一个队列,且对于队首连续的3个元素x,y,z(x<y<z),在任意时刻都不会出现x比y优同时z比x和y都优的情况,下面证明一下为什么有这个特性。 &nb
·
2015-10-31 11:47
sequence
【POJ3709】
K-Anonymous
Sequence K佚名序列丶 斜率优化DP
题意:n个不降的数,要分成若干连续段,每堆至少m个,每堆里的数都必须一样,不一样可以花费1的费用把某个--,直到同一个段里全一样,求最小花费。题解:斜率优化DP丶、、、老规矩,动规方程和拆解看代码注释。#include #include #include #include #defineN501000 #defineinf0x3f3f3f3f #defineINF0x3f3f3f3f3f3f3f3
Vmurder
·
2014-12-02 14:00
dp
动态规划
sequence
斜率优化
POJ37909
K-Anonymous
POJ 3709
K-Anonymous
Sequence (斜率优化DP)
题目类型 斜率优化DP题目意思给一个由n(2=k)(其中dp[i]表示把前i个数字划分完成后的最小代价,sum[i]表示前i个数的和,a[i]表示第i个数字)由于n很大,所以这个O(n*n)算法是会超时的,因此需要进行优化这里使用斜率优化这个方法详细参看这篇论文中的例2-> 浅谈数形结合思想在信息学竞赛中的应用对于这道题假设有3个合法的候选点x,y,z(其中x= dp[y]+sum[i]-sum[
Yunyouxi
·
2014-08-16 21:00
动态规划
poj 3709
K-Anonymous
Sequence 斜率优化dp
因为有k个数的限制,所以要注意出队的时间。/**/ /**/ /**/ /**/ /**/ /**/ #include #include #include usingnamespacestd; #defineinf0x7ffffffffffffffLL longlonga[500005]; longlongsum[500005]; longlongdp[500005]; intq[500005];
t1019256391
·
2013-07-16 16:00
poj 3709
K-Anonymous
Sequence(斜率优化DP)
/* s[i]->前I个数之和; 朴素方程:dp[i]=min(dp[j]+s[i]-s[j]-(i-j)*a[j+1]); 假设I>J>K,且在K点的决策比J好,则有 dp[j]+sum[i]-s[j]-(i-j)*a[j+1]>=dp[k]+s[i]-s[k]-(i-k)*a[k+1] 化简得: dp[j]-dp[k]-s[j]+s[k]+j*a[j+1]-k*a[k+1]>=i*(a[j+1
SYLG_li
·
2012-09-30 22:00
poj 3709
K-Anonymous
Sequence
http://poj.org/problem?id=3709/*O(n^2)的DP方程:f[i]=Min{f[j]+sum[i]-sum[j]-a[j+1]*(i-j)}。假设决策j1=f[j2]+sum[i]-sum[j2]-a[j2+1]*(i-j2)[(f[j1]-sum[j1]+a[j1+1]*j1)-(f[j2]-sum[j2]+a[j2+1]*j2)]>=i*(a[j1+1]-a[j2
IAccepted
·
2011-08-20 14:00
dp专辑 C -
K-Anonymous
Sequence [ 斜率优化]
这是我做的第二道斜率优化题了,开始题目米看懂,就直接百度了,才明白题意~英语不行呀~题意:将一个升序的,有N个元素的序列,分组。每组的元素不少于K个,计算出组内各元素与最小元素的之差的和,将每组的这个值加起来,其和要最小。分析:DP方程:dp[i]=MIN(dp[j]+sum[i]-sum[j]-(i-j)*arr[j+1]);j=dp[k]+sum[i]-sum[k]-(i-k)*arr[k+1
lmyclever
·
2011-08-09 07:00
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他