刷题记录
moros_nurd
菜鸡
展开
-
poj 2796
poj 2823原题题意:给定一个长度为n(n<105)n(n<10^5)的非负整数序列aa,定义函数f(l,r)=(minri=la[i])∗(∑ri=la[i])f(l,r)=(\min_{i=l}^r a[i])*(\sum_{i=l}^r a[i]),求f(l,r)f(l,r)的最大值及其对应的ll与rr思路:对于∑ri=l(a[i])\sum_{i=l}^r(a[i])可以通过前缀和相减O原创 2016-08-15 15:31:40 · 296 阅读 · 0 评论 -
hdu 3507
hdu 3507原题题意:给定非负整数序列aa长度为nn,状态转移方程为DP[i]=minik=1(DP[k]+(sum[i]−sum[k])2+C)DP[i]=\min_{k=1}^{i}(DP[k]+(sum[i]-sum[k])^2+C),求DP[n]思路:作为斜率优化的例题,在斜率优化的介绍里挺清楚的……代码:# include<stdio.h>const int nMax=500000;i原创 2016-08-17 21:20:22 · 921 阅读 · 0 评论 -
poj 2823
poj 2823poj 2823 原题 题意 思路 单调队列 原题题意:给定序列长度n<106n<10^6,窗口大小kk,将窗口放到序列上,从左往右一格一格移动窗体,输出每个状态窗体中数字的最小值和最大值。思路:数据量为10610^6,O(nlogn)O(n logn)复杂度可过,也可以用单调队列,反正很裸。单调队列:于是我写了这么一个代码,g++交,T了……#include<stdio.h>co原创 2016-08-14 20:55:13 · 306 阅读 · 0 评论